In Civil, we split things into files for organization, stability, and ability for different items to be worked on at the same time.
Given the quirks I have seen with blocks (and xrefs), its better to separate things by file, then xref together.
If issues happen, at least its not one big blob you have to rip apart to isolate the issue.
You should think about relative paths or full paths a bit. I like relative paths for users who get what they mean.
Ones that do not will copy some file to another folder and wonder why the xrefs do not show right.
At a minimum, you should make or get a routine that attaches xrefs with the defaults you want. I control the layer, alias (name that shows in xref dialog), insert point, scale, rot, and attach vs overlay prop.
Also keep in mind that with separate files, you need a way to clean up old xrefs. You have to be able to ask "where is this file xreffed?".
That is a tough one, but doc management progs and programs like Everest
http://www.altimasoftware.com/ can help.
Its a pain if users do not keep things squeeky and named nicely.