Are these reasons valid, are there others as well, and is it harder to be a "good engineer"?
In the zoomed-in view, there are some things which are definitely harder and others which are easier. But overall? I don't see a difficulty difference.
So you don't need to keep up on everything to be a good engineer. On the contrary, the best engineers I know stick to one thing long enough to know it deeply, while keeping a light eye on what is new in order to understand when it is worth learning a new skill. It is OK not to do everything. And best practices are not as clear as that term makes it seem - "best" is subjective. Different projects have different needs, so it is good to know what worked for others, but you still need the deep knowledge to make your own decisions.
I don't think the work is any harder now than it was a couple decades ago. But there are a lot more distractions now, so being comfortable with prioritizing where you want to spend your energy is a bigger task that it used to be.
20+ years ago, if you had a website that let people make comments and upload a low-resolution image for others to see, that was seen as pretty freaking cool.
Today, you need to create software that does something like have a 3d VR interface to order pizza, provide real-time maps of where your pizza is at all times, have perfect AI customer service agents that will answer any question instantly, and get it to you in under 5 minutes to barely raise an eyebrow about your tech.
Now, if you scope it to the top 20% of engineers and ask the same question, I'll give you a much different answer:
After you became a decent generalist, I'd refer you to concepts like "invest in yourself, not your job"[1] and just-in-time learning[2].
1. https://critter.blog/2023/10/05/invest-in-yourself-not-in-yo...
2. https://critter.blog/2020/08/14/learning-a-technology-you-do... (coincidentally, by the same fellow as in link #1)
If you're a decent generalist, maintenance of pretty much anything isn't that hard unless you're jumping into something low level like C++.
Architecture / building major applications from the ground up is harder, but this isn't that common of a task, and if you're building something mission critical and important, odds are you have a team. Or at least you should.
They arrange things in such a way that all other options other than "shitty engineering" are thoroughly eliminated.
Many companies are not interested in good engineering. At least if they admitted it I'd be way less bitter about it. The insult to the injury is when they insist on pretending like they are into engineering.