I've been away from this game for a couple months now, though looks like if I decide to play this now, then I guess that I won't bother building flamer bunkers at all. I used to place them just behind a hill or around the corner of a narrow canyon to keep them protected from longer-ranged weapons, but since projectiles are currently able to pass through terrain, this no longer seems viable.
Perhaps we could still let direct-fire projectiles pass through terrain, though whether or not the units can fire upon their targets could use a bit of tweaking. Perhaps, in addition to checking whether or not the target is in range, the units could also do a simple linear collision-checking test to see if there's terrain in-between the unit and the target. If the target is within range, but is obstructed by terrain, then the unit could try one of 2 things in an attempt to get a clear shot of the target: 1. move closer to the target, or 2. circle around the target.
As for artillery, I've always considered the land against a cliff wall or mountain to be safe spots from artillery strikes, but also a poor spot to place your own artillery units/structures in. I can understand why people would be especially annoyed about seeing their own artillery units fire at the cliff wall that they're placed next to, damaging themselves in the process (I've had that happen to myself as well), though I don't think that making artillery rounds pass through terrain is the answer (at least not by itself), as that'll also take away those safety spots (and players, especially those that don't like fighting in artillery wars, could really benefit from those safety spots). Rather, perhaps we could also have the artillery perform one of 2 collision-checking routines before it decides to fire away:
1. Make 2 linear collision checks to see if nearby terrain (such as a cliff wall) will block the artillery unit's shots (it'll momentarily treat them as direct-fire) at the pitch that it needs to be (and maybe a couple degrees below that just in case) in order to fire at the intended trajectory. If it is, then the artillery unit will not fire at its target. Artillery projectiles won't pass through terrain. (Although this'll still mean that artillery shots could still hit the side of a cliff instead of the target, at least they won't shoot themselves in the foot.)
2. Plot multiple points along the trajectory, and do a linear collision check between every 2 points (starting from the artillery unit, and ending with the target), checking if terrain objects are located in-between the 2 points. The distance between the 2 points could represent how far the artillery's projectile travels after 1 or more frames, or it could represent a percentage of the trajectory that the projectile will travel at. If terrain is in the way of any of these sets of 2 points, then the artillery unit will not fire, knowing that its shots would only collide with a part of the terrain, though the actual shots could be made to pass through terrain (to ensure that terrain doesn't graze the artillery rounds). (Not sure how much processing power it'll take, but this seems to me to be the better of the 2 options, though the artillery units might look like they'll always have knowledge about the local geography.
Also, keep in mind that fewer points to plot during the collision-checking process will mean fewer collision checks involved, which will, in turn, mean that the process would be done quicker,
though it'll also mean that artillery will be more likely to refuse to fire when it would've had a clear shot in real-life.)