Some of the rules are to protect players who sign contracts with teams. If you could trade a player immediately to another team without his permission, it would be unfair to the player, who's essentially been fooled into signing a contract for a different team. So you can't trade such players who sign contracts until December or January, depending on how you signed them. These sorts of delays are accordingly negotiated because the players' association wants them.
Even rookie deals are subject to some negotiation, both about salary and other smaller contractual obligations (such as public appearances,, etc.) No player of agent wants to negotiate with one team only to be traded before suiting up for that team. While the 30 day limit doesn't prevent that outright, it helps to limit it.
The trade deadline in February occurs because the league has an interest in limiting roster moves at the end of the season. All sports leagues seem to do this, so I'm going to guess it isn't arbitrary.