I thought of coding something similar to this for CS:S, and it wouldn't really be that difficult. Set the human team cvar to T or CT, friendlyfire to 1, tkpunish to 0 then have a simple (lol) plugin that at the beginning of a round that places the players at random spots on the map (i guess you'd need a spawn list for every map so people dont randomly appear inside of a wall or so)
Then when a player dies, have them respawn again or after like 3 seconds.
I don't know about buying though, you'd have to do some ugly hooking I think to let players buy anywhere, unless there is a GetUnknown for In a Buyable Area.