Well, once I saw Thugie's comment on the people spamming the fishing rod and how does such an act interfere with the server (since it overwhelm the server with requests) I couldn't help to wonder, why would you use the server to do most of the work?!
I mean, imagine the processing power and storage capacity behind each client used by a player, why can't you use it to your advantage rather than a dumpy interface sending requests to the server with minimum computations?!
For example, the fishing rod (Old Rod), why would the client send request to the server every time a player click on the Old Rod?! the client can easily detect the cool down time of the item and sends the request only after the cool down period, this way might reduce number of requests sent to the server, which may decrease the server utilization (which is a good thing in real time applications, preferably under 65%) and of course any "innocent" player spamming the item for boredom or any other reason will not fall into the banning trap unless he/she was using a 3rd party software to resend specific packets to the server (replay attack), in this case the automatic banning system will deal with them.
The client can also do a magnificent work when a player get stuck outside a map, it can just ask the server to change the player's location to a safe place or to the last visited pokemon center.
Also the server and client can work together when the maps' server is down; the server can just lock itself and reject any new connection and iteratively for each map can check players stuck without a map and ask client with this maps loaded to upload the map to it and the server send it to the stuck players.
All I'm saying is the client can do some computation for the server just to reduce lag possibilities and many other features, depending only on the server to do the hard work will increase the server utilization and consequently increase the response time for each request (lag) and it's a good idea to make harmless use of the client side resources.
For the on screen message, well I don't know, it could be annoying to some player to click to dismiss the message every 5 minutes or so, I think it might need more investigation.
For players stuck in unloaded map and try fishing as their last resort, well, why can't we add a possibility for changing the location; we can every 5 minutes fishing add a high chance of replacing the spot and the chance increase each time till the player actually change the spot or add a longer cool down time for the spot to re-fish at it, like another 5 minutes.
I'm just throwing what is in my mind now, maybe you'll find something useful in it.
good job everyone and continue the good work, I really appreciate it