Las variables globales solo deben usarse para un estado verdaderamente global. El uso de una variable global para representar algo como, por ejemplo, la latitud del límite norte del mapa solo funcionará si solo puede haber un "límite norte del mapa". Si en el futuro el código tuviera que funcionar con múltiples mapas que tienen diferentes límites norteños, el código que usa una variable global para el límite norte probablemente tendrá que ser modificado.
En las aplicaciones informáticas típicas, a menudo no hay una razón particular para suponer que nunca habrá más de una. Sin embargo, en los sistemas integrados, tales suposiciones son a menudo mucho más razonables. Si bien es posible que se requiera que un programa de computadora típico admita múltiples usuarios simultáneos, la interfaz de usuario de un sistema embebido típico estará diseñada para que la opere un solo usuario que interactúa con sus botones y pantalla. Como tal, en cualquier momento tendrá un solo estado de interfaz de usuario. Diseñar el sistema para que múltiples usuarios puedan interactuar con múltiples teclados y pantallas requeriría mucha más complejidad, y llevaría mucho más tiempo implementarlo, que diseñarlo para un solo usuario. Si nunca se solicita al sistema que admita múltiples usuarios, se desperdiciará cualquier esfuerzo adicional invertido para facilitar dicho uso. A menos que sea probable que se requiera soporte multiusuario, sería más prudente arriesgarse a tener que descartar el código utilizado para una interfaz de usuario único en caso de que se requiera soporte multiusuario, que gastar un tiempo extra agregando soporte al usuario que probablemente nunca sea necesario.
Un factor relacionado con los sistemas embebidos es que, en muchos casos (especialmente cuando se trata de interfaces de usuario), la única forma práctica de soportar tener más de uno de los elementos sería utilizar múltiples subprocesos. En ausencia de alguna otra necesidad de subprocesos múltiples, es probable que sea mejor usar un diseño simple de un solo subproceso que aumentar la complejidad del sistema con subprocesos múltiples que probablemente nunca sea realmente necesario. Si agregar más de uno requeriría un gran rediseño del sistema de todos modos, no importará si también requiere reelaborar el uso de algunas variables globales.