Bug still present in 14w27a.
Simple screenshot showing the error that occurs when a player attempts to add a fake player to a team.
Taken in 14w26c
Alternatively, you can just use another command block to replace the command block you are testing from. Just setblock with the command you want.
Tested in 14w29b and is still present.
Like @unknown said, the reason tellraw and books require OP for executing commands is security. Those two examples use the same JSON formatting that signs are capable of using, yet only signs are not checked if the player can issue said command(s).
As far as I know, all events are passed to the server for processing and the server determines if the player can issue said commands(as proven by trying to issue commands via books outside spawn protection). It makes no sense to only check commands that are inside signs when the activating player is also inside spawn protection.
Yes, like @unknown said, it's more of a convenience issue and players creating these signs shouldn't leave them out and about but it happens and, sometimes, it's easier to do just that.