I think that if you can call for defensive aid then, you should able to call for offense aid too. From friends or alliance members.
Attackers are already at a large disadvantage:
They don't have defensive structures
They could have up to 2/3 of the units of the defender
Defender do need to have siege weapons free up more capacity for other units
Without that would make it near impossible to successful siege cities of large alliances even if you are part of one yourself.
There is little point to even building walls as attack protection lasts until you build them. It is in fact more safe to not have them. No reason to have a garrison, unless you want to be attacked. The best way to do things have 90 population of workers to keep the army strength low and you will have enough money to pay if they do come by with a very small army.
You also need to decide if unit keep the technology and traits of the producers. A mercenary Grand Master does not equal a Grand Master from a Bol Fores'l - forest, Forest Warriors, Archmages elves with maxed tech. If the units do keep the traits and such the receiving player should not be allowed to keep the units.
When the call of battle is sent out there should be a check list of what units the player would like from his allies, like ranged pierce and melee crush. And or perhaps reserve list of donated units that alliance has can used to select aid.
Allies for both could spawn in waves at 5, 10, 15, 20 minutes.