The argument is flawed. Every job has its own hassles, limits, dogma and so on. This applies to programming also. You might end up working with a team, which uses organizational schemes you hate, in a language that you dislike using tools you consider obsolete (See Linus Torvalds famous talk about git). In other situations re-writing the tool, is far from realistic, so you do professional patching, even though you hate it.
It's an awesome thing to like your work. But it's unrealistic to expect to do everything with your own terms and getting paid for that.