Yep, and then we always get those regular posts "project XYZ is no longer", yeah people not paying.
Unreal is free to the extent it contributes to bringing even more people into the ecosystem, eventually becoming paying customers, Epic doesn't make it available out of their kindness, rather also taking into account there are other competing alternatives.
It's important to keep development going but commercial projects is not the only way. Godot Foundation exists and there are plenty of others in open-source space.
A nonprofit means actual reports about how money is used, and it's not as if commercial projects are somehow better because they don't fold or get sold or canceled.
And even between commercial ways, charging royalties is one of the worst. It doesn't cost Epic extra if my game starts making more money. Just make the engine a one-time purchase (per version, so you get to keep sales going) and everyone will be much happier. Sell additional services which actually do cost you money to keep up (multiplayer hosting).