> the app decides what's important, by deciding what to not delete when asked to free up space.

But you also propose that "If [app] cannot [free enough space], then the user agent is within rights to start removing storage until the desired amount of space is freed up". So reliable storage still doesn't exist, and there no way to interact with user saying "hey, if you delete this data you will lose [you unsent e-mail, game progress, etc]" in a manner desktop application does.

> new APIs will be necessary for determining how much space storage takes

I noticed that phrase but I don't understand what it means. Do you propose to design new API for determining storages sizes?