I think that there should be no punishment for teamkilling during the warmup/nade round. At this point the server is just waiting for people to connect/load and the real game hasnt even started yet.
Now after the real game starts it should be fair game. If you kill a team member, accident or not, you should expect to be punished. If Zero made it so you cant punish next round, what happens if you get teamkilled near the end of the round when there is only 1 or 2 people left? Anything you do won't be much of a punishment. I sugegest keeping next round punishment in.
As for end of round punishment, I also suggest keeping that in. Some people don't mind fooling around those few seconds after the round is over, some do. Taking out the punishment system from the end of the round will only piss off the people that dont like to be shot at that time by team mates. keeping it in will make the people that do like 'fooling around' at the end of the round think who they are shooting and if they will mind if they accidentally get killed.
I do think that the warmup/nade round should not have the punishment system or at least not one that leads into the next round. However, the one during the actual game is fine the way it is. It already strikes a decent balance between different peoples preferences.