Is there any reason to delay when you open battlepacks?
I know that opening battlepacks early can be useful if they contain XP boosts during a time when you are playing a lot, but is there ever a reason to wait?
Do attachments in battlepacks bear any relationship to which weapons you have/haven't unlocked?
I find no reason to delay they can contain very useful attachments, xp boosts and player card emblems. Also when you get an xp boost it doesn't use it immediately. It will store it in the in-game start menu. To turn it on, (on console: square for PlayStation or X for xbox) and choose the boost you want that the hour timer will start and only be used when your in a game.
As for the attachments it was random for the guns you unlock it for. You don't have to have it unlocked in order to receive them. Side-note If you unlock battlepacks for a certain weapon it will only give you attachments for that weapon.