bf2 is not an infantry simulation.
Weapons are very simple, each action load an animation. You can check the files.
so when you fire you load the fire animation.
when you reload you load the reloading animation.
idle1
idle2
stand
run
sprint
tozoom
zoom_fire
etc ...
So it doesn't take care about the environement.
This is the reason when you empty you gun, the animation load the stand animation, and it is only when you reload the gun (reload animation) you see the "empty" situation.
I don't know about the rpg, it would be interresting to see how it works, if it is a empty animation or something with a projectile loaded.
i don't know i'm not the guy responsable for that and never use it.