You can sort out one disadvantage of normal entities by just adding the following line to the weapons action:
my.znear = on;

In the past I always used view entities, but at the moment I think level entities are better, caus of the advantages you listed. And I think moving the weapon infront of the player all the time is not a problem at all.