Variáveis globais devem ser usadas apenas para um estado verdadeiramente global. O uso de uma variável global para representar algo como, por exemplo, a latitude do limite norte do mapa só funcionará se houver um único "limite norte do mapa". Se, no futuro, o código precisar trabalhar com vários mapas com limites diferentes do norte, provavelmente será necessário reformular o código que usa uma variável global para o limite norte.
Em aplicativos típicos de computador, muitas vezes não há razão específica para supor que nunca haverá mais do que uma coisa. Em sistemas embarcados, no entanto, essas premissas geralmente são muito mais razoáveis. Embora seja possível que um programa de computador típico possa ser chamado para oferecer suporte a vários usuários simultâneos, a interface do usuário de um sistema embarcado típico será projetada para operação por um único usuário interagindo com seus botões e tela. Como tal, a qualquer momento, ele terá um único estado de interface do usuário. Projetar o sistema para que vários usuários possam interagir com vários teclados e monitores exigiria muito mais complexidade e levaria muito mais tempo para implementar do que projetá-lo para um único usuário. Se o sistema nunca for chamado a oferecer suporte a vários usuários, qualquer esforço extra investido para facilitar esse uso será desperdiçado. A menos que seja provável que o suporte a vários usuários seja necessário, provavelmente seria mais prudente arriscar descartar o código usado para uma interface de usuário único, caso o suporte a múltiplos usuários seja necessário, do que gastar mais tempo adicionando suporte ao usuário que provavelmente nunca será necessário.
Um fator relacionado aos sistemas incorporados é que, em muitos casos (especialmente envolvendo interfaces com o usuário), a única maneira prática de oferecer suporte a mais de uma coisa seria usar vários encadeamentos. Na ausência de outra necessidade de multiencadeamento, provavelmente é melhor usar um design simples de thread único do que aumentar a complexidade do sistema com multiencadeamento que provavelmente nunca será realmente necessário. Se a adição de mais de uma coisa exigiria uma enorme reformulação do sistema, não importará se também é necessário reformular o uso de algumas variáveis globais.