You would use RELOAD in a busy system where you can't afford denied connections. Reload is typically used when you make a change to listener.ora and you want the changes to activate immediately for all new connections. Sometimes the change might contain a bug (and you can't really test it unless you reload), and then this extends the time taken to revert your changes, assuming you made a backup of listener.ora. Good luck if you don't have a backup, as finding the bug (like a missing bracket) can be time consuming.
We use STOP/START when DBSNMP misbehaves. Stopping the listener usually disconnects all DBSNMP sessions but sometimes we have to kill DBSNMP from within the database. DBSNMP misbehaves in times of bad performance and has a backlog of stats to receive from the agent. This creates a vicious cycle and makes performance worse.
In the rare event that we have to CLEARSTATE, then we STOP first, CLEARSTATE and then START.