La diferencia principal desde una perspectiva de diseño es que un PluginOutlet es un punto de inserción. Inyectas tu componente directamente en una plantilla principal. Cada personalización modifica realmente la estructura de la aplicación.
Un BlockOutlet es un marco de diseño. Registras uno o varios componentes con el marco. Luego, las personalizaciones ocurren dentro de ese marco en lugar de en las plantillas de la aplicación. Así obtenemos diseños más predecibles y estables.
Otra gran diferencia es que la API de Blocks puede manejar todo el espectro de lógica de renderizado condicional. No necesitas agregar eso a tu componente. Un componente de bloque puede enfocarse puramente en el contenido y la plantilla, y tenemos mucha menos lógica repetida.