I do think it should (must?) be "acceptable" to kill the process/page completely if necessary.
Obviously detecting that the context is broken and firing a context lost event is the preferred option, but I don't think we can require all implementations to always recover gracefully.
The issue is that if you kill the whole page, a reload will just kill it again in an endless loop (or however many auto-reloads iOS safari does by itself). It's night impossible to use iOS safari if it does that (closing the tab manually becomes quite challenging etc.). It also leaves the JS on the page with no clue that it did something bad (munch too much vram or whatever) and so no avenue to rectify/address the "bad" behavior. On the whole it's just really, really bad, is why I think it'd make a fairly good requirement for a specification.
Safari should only reload the page twice and then give up. It's definitely a bug if it reloads constantly.