Globale Variablen sollten nur für einen wirklich globalen Zustand verwendet werden. Die Verwendung einer globalen Variablen zur Darstellung von beispielsweise dem Breitengrad der Nordgrenze der Karte funktioniert nur, wenn es immer nur eine "Nordgrenze der Karte" geben kann. Wenn der Code in Zukunft möglicherweise mit mehreren Karten mit unterschiedlichen Nordgrenzen arbeiten muss, muss der Code, der eine globale Variable für die Nordgrenze verwendet, wahrscheinlich überarbeitet werden.
In typischen Computeranwendungen gibt es oft keinen besonderen Grund anzunehmen, dass es nie mehr als eine von etwas geben wird. In eingebetteten Systemen sind solche Annahmen jedoch oft weitaus vernünftiger. Während es möglich ist, dass ein typisches Computerprogramm aufgerufen wird, um mehrere gleichzeitige Benutzer zu unterstützen, ist die Benutzeroberfläche eines typischen eingebetteten Systems für die Bedienung durch einen einzelnen Benutzer ausgelegt, der mit seinen Tasten und seinem Display interagiert. Als solches wird es zu jedem Zeitpunkt einen einzelnen Benutzeroberflächenstatus haben. Das System so zu gestalten, dass mehrere Benutzer mit mehreren Tastaturen und Anzeigen interagieren können, würde viel mehr Komplexität und Implementierungszeit erfordern als das Entwerfen für einen einzelnen Benutzer. Wenn das System nie zur Unterstützung mehrerer Benutzer aufgerufen wird, Jeder zusätzliche Aufwand, der zur Erleichterung dieser Nutzung aufgewendet wird, wird vergeudet. Sofern nicht mit einer Mehrbenutzerunterstützung zu rechnen ist, ist es wahrscheinlich sinnvoller, den für eine Einzelbenutzeroberfläche verwendeten Code zu verwerfen, wenn eine Mehrbenutzerunterstützung erforderlich ist, als zusätzliche Zeit für das Hinzufügen von Mehrbenutzerunterstützung aufzuwenden. Benutzerunterstützung, die wahrscheinlich nie benötigt wird.
Ein verwandter Faktor bei eingebetteten Systemen ist, dass in vielen Fällen (insbesondere bei Benutzeroberflächen) die Verwendung mehrerer Threads die einzig praktikable Möglichkeit ist, mehr als eine Funktion zu unterstützen. In Ermangelung eines anderen Multi-Threading-Bedarfs ist es wahrscheinlich besser, ein einfaches Single-Threading-Design zu verwenden, als die Systemkomplexität durch Multi-Threading zu erhöhen, das wahrscheinlich nie wirklich notwendig ist. Wenn das Hinzufügen von mehr als einem Element ohnehin ein umfangreiches Redesign des Systems erfordern würde, spielt es keine Rolle, ob auch die Verwendung einiger globaler Variablen überarbeitet werden muss.