Simply put, there is NO SAFE WAY to programmatically send files to the recycle bin in Windows, no matter the version. If you see another program doing it, they are doing it in a way that could fail silently and directly delete the file. (Which 95% of the time you can get away with because most users are oblivious.)
Unfortunately FOF_WANTNUKEWARNING flag does not always work. And when it doesn't, the file is directly deleted. This will usually happen on any removable drive or network storage or a Vbox share.
No, there is no way for the API to indicate that a file will be not be recycled and directly deleted. It simply fails by directly deleting the file. This is for SHFileOperation and IFileOperation both, with combination of flags. The nuke warning flag WILL NOT always work, in fact, it only ever works if the issue is recycle bin capacity, and even then it isn't reliable. And when it does work, it will block the SHFileOperation call from returning when it shows it's dialog.
There is also an undocumented IRecycleBinManager interface which is very hard to get information on, but again, even if you take the risk of using this undocumented interface which could change in the future, this approach is not safe because you can end up with a data race if there is another process using the recycle bin near the same time.
Getting rid of this shitshow was absolutely the right thing to do. Perhaps bringing it back with a very stern warning dialog when "Direct to Trash" option is switched on will be the only way to go, and let the users take the chance if they want.
For anyone who might read this in the future, perhaps coming across it via a web search, here's a decent summary of the options
https://stackoverflow.com/questions/23720519/how-to-safely-delete-folder-into-recycle-bin ..... there's many other articles about it if you use the search function on SO.