You can certainly bring in Block definitions without completing the Insertions of those Blocks. If they're in a folder location that's in the Support File Search Path list in Options:
(foreach blkname '("BlockA" "BlockB" "BlockC" "BlockD")
(command "_.insert" blkname) (command)
)
The (command) function with no arguments cancels the Insert command at the point where it's asking for an insertion point, but the Block definition will already be loaded in.
If applicable, you might want to have it first use (tblsearch) to check whether there's a Block by each name already in the drawing, because if there is, there will be a question to be answered about whether to replace it. When it finds one that's already there, you could either have it not do the Insert at all, or include the answer to that prompt.
The only other thing I can think of would be to Open each drawing and get its size from the EXTMIN and EXTMAX System Variables in each. That, at least, would not involve bringing a lot of Block definitions into the current drawing that you might not use, but I think it would require a Script approach rather than an AutoLisp approach.
Kent Cooper, AIA