He aprendido que el problema solo ocurre si se abre el storyboard mientras hay un monitor externo conectado, y también he aprendido que los monitores externos son manejados por la GPU discreta en esta máquina.
De esto, combinado con la nota de OpenCore Legacy Patcher sobre cómo la renderización de Storyboard puede corromperse en gráficos Kepler, y combinado con que el problema no está presente en Macbooks que solo tienen gráficos integrados de Intel, concluyo que esto solo es un problema cuando Xcode utiliza la GPU discreta para el trabajo de renderizado. Desafortunadamente, la participación de la GPU discreta es necesaria ya que quiero usar un monitor externo.
El siguiente descubrimiento fue que los storyboards no solo funcionaron bien siempre que los abrí sin que hubiera un monitor externo conectado, sino que también continuaron funcionando después de volver a enchufarlo. Claramente las superficies de render adquirieron y retuvieron algún tipo de afinidad por una de las dos GPU en el momento de la creación.
Pensé un poco más al respecto, porque no quiero estar constantemente desconectando monitores, y me pregunté si no hay otro estado del sistema que también obligará a las aplicaciones a usar la GPU integrada en lugar de la discreta. ¿Qué tal el ahorro de energía?
Después de desconectar el cable de alimentación y abrir Xcode/abrir storyboards en un monitor externo, con la batería, efectivamente obtengo el mismo resultado que cuando no hay un monitor conectado. Esto es mucho mejor que desconectar y volver a enchufar dos monitores cada vez.
En conclusión: si puedes aceptar resolver este problema de manera individual, puedes forzar a los storyboards de Xcode a preferir la iGPU durante su vida simplemente desconectando el cargador antes de abrirlos. Imagino que necesitarías habilitar la configuración de ahorro de energía del sistema para cambiar dinámicamente las GPUs para que esto funcione.
Si de alguna manera pudieras forzar el sistema de forma programática a su estado de ahorro de energía, o a siempre elegir la GPU integrada de alguna otra manera, entonces supongo que podrías teóricamente automatizar esto.