Lol Ish, you are trying to teach grandpa how to suck eggs.
Perception is 90% of reality my dear friend.
What you call workarounds, I call functional replacement because the original bugged function is completely replaced with your own and not executed.
Does it really matter what methods you use to fix a problem as long you do fix it? Here's a little story about the value of 'workarounds' from my own personal experience:
With my previous employer we would get calls from clients that were having issues with their application servers. Those servers are used everywhere. Some of those issues were so severe that the server could not stay running and they were losing huge money by the hour either because the assembly line for their cars came to a stop or perhaps the check-in system at the airport stopped working and flights were being delayed because people could not get checked in. They turned to us to fix them (yes, the customers I worked with were that big and so were their problems). Guys like these can't wait for us to code something up and we had to get them running again immediately. So we would look at the problem, perhaps find the root cause being a corrupt record in their database transaction log.
We copy the record out and clean up the log, they are running again. We give them instructions on what to do if it happens again. That is a work around because we fixed a problem without putting any functional code in place at all. We also told them what to do if it happens again so they would not need to call our panic line. Sure we would need to do a lot of forensic work to find out why that record got corrupted but at the end of the day it is a work-around that gets them running and keeps them running. In may 80% of cases like this that workaround ends up being a permanent fix.
Something many of us found out a looong time agoAnd it is cheaper entertainment too!