I have noticed this as well. Part of it I can describe as this:
In GTA:VC, when you are hit with bullets, you are knocked off for a second before you can fire again. When firing at your target, this happens to them instead of you - so they can't shoot back at you. But on their computers they are shooting at you, and you are being knocked back - so no bullets are coming from you. Nice tradeoff, huh?
The bugs with running into people is probably due to syncing and latency, if you keep rushing forward you might run them over.
What I currently can't explain is throwing molotovs at people and having them not burn, throwing molotovs at cars and having them burn, but then not explode, killing people but having them come back to haunt me from where I killed them, etc...
It seems health is dependent on the client, and not the server - the server isn't complex enough (at least at this point in time) to be able to know this and compensate for this, that may be worked out in the future. If it was dependent on the server, regardless of being "knocked back," people would take damage, and there would be many a kill as compared to now... at least potentially.