Interesting. Since we're talking about PWAs, which are essentially apps running in the sandbox of a web client (i.e. browser), the issue you raise could presumably be fixed in an instant with a client-side setting: "Do not update this app".
That improves the situation a little, but the user still doesn’t have an easy way to migrate the app to other browsers on the same machine or to new machines. With a self-contained binary you just copy the executable wherever and you’re done.
The other issue is that web browsers are dynamic environments (much more so than operating systems) and sometimes break/change things. Users who’ve frozen PWA updates don’t have any access to critical fixes. A lot of devs just wouldn’t support frozen versions.
That improves the situation a little, but the user still doesn’t have an easy way to migrate the app to other browsers on the same machine or to new machines. With a self-contained binary you just copy the executable wherever and you’re done.
The other issue is that web browsers are dynamic environments (much more so than operating systems) and sometimes break/change things. Users who’ve frozen PWA updates don’t have any access to critical fixes. A lot of devs just wouldn’t support frozen versions.