The concept does sound somewhat similar to what others have proposed over the years.
While, if I remember correctly, in '2.99', there was work to only allow certain teams or shots go through teleporters, this was pretty much as far as it go in terms of 'per-team' attributes to objects.
Not to sound discouraging in any way, but API at the time of this writing have no 'ability' to control or adjust objects.
feature would have allowed some interesting aspects to be made, but this was for the '3.0' edition, which was never released.
Although you are not able to adjust any of the 'arguments' an object has with the API, there is something you can do.
This is using a custom map or zone object, and by doing so, some of the things you have mentioned are 'possible' to some extent. (Via plug-in.)
The part of having a 'death' object only affecting certain teams is pretty much the only thing which can be done be simulated with a plug-in.
I did partly simulate this in my 'TeamDeathZones' plug-in, which was inspired by the following threads: Stay Out Areas for a certain team
, Death Objects And Hiding Objects
However, my implementation of it was inefficient and left a lot to be desired, but it is unlikely I'll be revising it anytime soon due to other projects taking priority at the moment.
Still, the source is there and you are free to use or update it.