You don't actually need a steam account or the client - with SteamCMD you can have CLI access to all the mods there, as well as download any mod (or, for example, dedicated server hosted via Steam) to a custom location.
As for what's bad with Steam Workshop: - No built-in way to host multiple versions of a mod or to revert to an old version.
- Very unreliable reinstalls (you might think you deleted a mod, and yet there are leftovers - and at least historically they liked to remain even over fresher files).
- Somewhat arcane directory structure (that makes fixing the above harder than it should be).
Not 100% correct, some are restricted to accounts that have licenses for the game. Same with some dedicated servers, you'll get an error ("Failed to install app "xxxxxx" (No subscription)" ) if you try downloading anonymously
There are lots of ideological and practical concerns with DRM, I won't list them here other than to say game players want to be in control of their machines and their experience, not let game publishers control their machines.
2. Steam policy is that you can only run the very latest release of a game (it will update when you go online, and you can't remain offline forever). It takes away your choice to reject publishers bad updates - for example, when 2K forcibly added their marketplace/launcher malware to Bioshock games, breaking them on Linux, Steam was their henchman/goon forcing it on everyone.
[*] Not everbody! https://www.pcgamingwiki.com/wiki/The_big_list_of_DRM-free_g...
At least I didn't found a way, and that one reason alone is enough for me to avoid the Workshop.
I made the mod for the Divinity: Original Sin that changes a few bytes in the game XML files to allow for 4 players in game instead of just 2, since it was mostly supported but probably removed for console porting simplicity. This is a braindead simple mod that just needs to find some XML tag inside the embedded EXE/DLL file and update it. I didn't even have to update any checksums, etc.
When I published the mod I chose to target the hashes/offsets of the Steam EXE since that was what everyone had. So, while I didn't target the workshop (as this modification could not be done with it) I did target Steam end-users.