The AI tags hexes where area fire is fired from as "of interest" for delivering packages by mail. So expect incoming if you do it a lot. A sensible human player would also read all the fire messages and target the area for a quick drenching of indirect fires too. At the very least, the messages will give him info on the forces firing - which he may not yet have located.
Piling up units in one hex can be a nice defensive tactic, until some arty hits that hex, or an enemy finally manages to get a shot into the stack, causing mayhem. Also - the more stuff in a hex, the more MP are charged for going into that hex. The tight pack of units are also not covering other lines of approach either. So it all gets balanced out. Remember that a hex is half a football pitch in size - so packing 2-3 AFV in there is not really "stuffing" it, it just looks crowded since the unit scale (1 pixel to a foot or 6 inches - I forget which) does not match the map scale of 1 hex is 50 metres/yards.
As to Z fire - I hardly ever use that since its rather
ineffective in therms of both accuracy and effect - I designed it that way

!. But I hear lots of complaints from these PBEM players that it is massively effective - are these guys going crazy and firing 50-odds units at a time or something?. Now, that
would be nuts. If it is something like that, then I suppose I could implement a "Z counter" so that each Z increments it until some magic number is reached (12 shots?) and Z is no longer available to the player for the remainder of the turn. Better yet - adopt a house rule limiting players to whatever number of bursts of Z in a turn suits them.
cheers
Andy