Creo que la razón es porque los tipos expuestos deben ser utilizables desde todos los tipos de idiomas (C#, C++, JavaScript tal vez más en el futuro).
Así que si tienes una clase, una de las clases que está utilizando se está reemplazando por una nueva clase. Podría querer superar la clase, eso se hace en otro idioma. Pero esto es un problema ¿Cómo desea anular una clase base realizada en C#, por clase de herencia hecha en C++? Esto nunca puede funcionar, porque ambos tienen implementaciones de OOP completamente diferentes e incompatibles.
Al forzar el sellado de las clases expuestas, elimina este problema y se asegura de que las personas no intenten hacer algo como esto.
Estoy seguro de que hay cosas mucho más fundamentales que esto, pero esto es lo que primero me vino a la mente.
¿Su título parece estar en desacuerdo con la pregunta? ("debe sellarse" vs. "no permite sellado") –