What is the best practice for dismounting an ECL provider? My doubts are mainly related to the removing of the stub components and stub schema. Has anybody had (good or bad) experiences with it?
Removing a mount point is pretty straight-forward : you just remove it from the ecl config file, and then you can delete the stub components & schema's.
Off course, just like with any other Tridion item, if these ECL items are used in other components, or if they are published, then you will first need to unpublish them, or alter the components that are using them.
So, before unmounting an ECL provider, you should first check where these ECL items are used. You can check the 'where used' dialog on ecl stub items, so if you have a large amount of items, you can write a core service script to get the items using your ecl stub items, and also the publish targets (see http://codedweapon.com/2012/12/getting-using-and-used-items-with-core-services/ for an example).
Then, depending on your use case, you could chose to remove these ecl items from using components and unpublish them, or you could let your content editors modify all components using these ECL items.
Once that's done, you should be able to safely dismount the provider, and to remove the ECL stub components.
Like Harald explain, it is pretty easy to dismount ECL but better you take care all dependencies before dismounting.
I had some bad experience where I even didn't dismount but some items were deleted directly from source and then all components using those ECL components were corrupted and I was not able to open/use them from GUI. I had to unpublish, delete and create new components for all components using those ECL components. so similarly if you dismount completely your all ECL components wouldn't be available in GUI and hence all main components using ECL may get corrupted because of ECL reference.