All of these can be solved by having tells and friend request from people who are not within 10 yalms of you unable to be sent. Similar to how /say works where you need to be within a certain range for it to be heard. Only those on your friends list will be able to send tells to you from anywhere (as is currently in game). Im actually surprised this wasn't implemented as such. This would make player search almost redundant since they would have to track you down and stand near you to send the friend request and tell.

Downside is that bots might start flooding main chat again.