There is a difference.
1. when you do srvctl stop instance/asm, the instance will be stopped using default option ie SHUTDOWN IMMEDIATE
2. when you do crsctl stop crs/cluster, the database and asm instances will be stopped by SHUTDOWN ABORT!
So the correct order is when you do planned maintenance is to stop db/asm manually using srvctl
Just check the alertlog which option is used when in you environment to see by yourself.
Hello! I hope my experience will be helpful.
In order to get a graceful shutdown of the databases in my cluster, I first stop the databases using the srvctl stop database command. Once the database has been shutdown properly, and is shown to be in OFFLINE state, then I use "crsctl stop cluster" command to stop the other cluster processes. Finally, I use "crsctl stop crs" command to shutdown High Availability services. I issue the "crsctl" commands on each individual cluster node, because I am not a big fan of the "-all" option to shut things down.
I hope this helps you!
Thanks and Best Wishes,