My general experience with decompilation has been very negative (rough and not ready for use)
It feels like tool devs target byte editting more than refactoring decompiled code into something readable - you can't move lines of code, can't flip statement checked in if() for early return
Author of this article mentioned "byte euivalence", and while I'd be fine with functional sameness, I imagine provably-reversible refactor steps would be of great help for everyone
Hm, I wrote a decompiler that does this. Maybe I should work on it more.
Not sure if you're a .NET/C# person, but PDBs are a bit different tho in that they contain full debug information and you can absolutely decompile a .DLL + .PDB combo. Very successfully even in the case of obfuscation.