A lot of people use older or custom implementations of Core because they’ve built other systems on top of that and they don’t want to spend the rest of their lives digging through code to keep everything working each time core has a new updates. When it comes to keeping software functioning, updates can be the bane of your existence.
Yes, with a couple of buts....
I agree new versions of software can cause issues in applications that are talking to it and sometimes updates can cause other issues in terms of general stability.
Here come the BUTS, not necessarily related to the original links I posted but in general.
1) We are talking about money, if you are writing something that may have other peoples funds you should not be running it on software that is no longer actively maintained. If it's something that is only going to have your funds, do whatever you want. But, the second you are responsible for other peoples money you should be at least somewhat up to date.
2) When you do have issues, or strange behavior, trying to sort out is it an issue, or just something that was fixed in a version that was released a few years ago can be a PITA to figure out.
3) Sooner or later, a change may be made that will cause your node not to talk properly to never versions of Core and then you have to rush to fix it.
4) Other???
Creating something and leaving it running is one thing. But, with the user trying to create the taproot transaction on an older version of core? If they do get it working and then they have to update and an issue comes up, it's just going to be that more annoying.
-Dave