freeze
and seal
are one part of protecting your code when you will be running untrusted code, and they are useful when you control the runtime environment. You need to freeze or seal objects before handing them to the untrusted code.
For instance, if you had a site where a user could submit code to control a robot, you would freeze the robot object, then pass it to the user's uploaded code. It wouldn't matter at that point if the user tried to overwrite freeze
or seal
. You wouldn't let user code execute before you had set up your environment and frozen the objects though.