@brummbeere - I think it might be good to clarify a few points
If you look through some of the links provided and search through the forums, you will see that OpenWrt's opkg package manager does not have the mechanisms in place to ensure that the upgrade will succeed. There are people working on improving the robustness of the upgrade system, but it was never designed for blindly updating all packages, and it also cannot update certain core packages without causing the system to fail. This has always been the case, but you are lucky that you have not experienced problems until this point.
Maybe you could explain exactly what you actually need to update using this method and why? In many cases, people believe that they should update just because an updated package is available. This is usually not necessary unless there is a specific feature addition, bug fix, or security patch that is critical for the continued operation of the system -- and like I said, this is rarely actually necessary. Beyond that, blindly updating all packages is the main issue here. If you have a few specific packages that you wish to upgrade, it may be okay to do so.
Yes, OpenWrt is open source. Nothing has changed in this regard.
Actually, the risk of upgraded packages causing major system issues has been around for a very long time -- this is just the first time you have encountered such issues. Again, just because there are updates does not mean that it is necessary or wise to install them, unless you know exactly what the update does and why you need it.
Yes. Because the reset to defaults removes the updated packages and all of the core packages are self-consistent. You can still install new packages to add functionality, but upgrading is usually not recommended.
The recommendation for upgrades has always been to wait for a maintenance release (for example 19.07.1 > 19.07.2) and flash a complete image. If there is a critical patch that must be applied before a new stable release can be built, you will see it here. If you must have the latest updates and be on the bleeding edge at all times, you should consider using snapshots (linked above by @lleachii), and to update your snapshot build regularly by flashing the newest snapshot (not upgrading packages) -- but understand that snapshots are not always stable and also make installing packages more difficult over time (snapshots are, by definition, a moving target). Or you can continue to upgrade specific/selected packages on a given build, but you need to understand that there is a risk involved, especially if you upgrade all packages.