O critério é etimológico e morfológico.
Como se verifica na grafia da maior parte da flexão, a vogal do radical – sub- – é u, e não o. E tal como ocorre com fugir, apenas a 2.ª pessoa do singular (sobes, foges) e as 3.as pessoas do singular e plural (sobe/sobem, foge/fogem) alteram a vogal no presente do indicativo, «provavelmente por analogia com os verbos em que se verifica abaixamento [da vogal do radical]» (M.ª Helena Mira Mateus et al., Gramática da Língua Portuguesa, 2003, p. 1027, n. 55). Ou seja, subir e fugir têm uma flexão semelhante à de verbos como ferir e dormir, nos quais a 1.ª pessoa do indicativo tem as formas firo e durmo (i e u são chamadas vogais altas), enquanto o radical das restantes pessoas verbais tem e e o (são vogais baixas): feres, fere, ferem; dormes, dorme, dormem.
Não obstante poder considerar-se que subir e fugir evoluíram na língua portuguesa de tal maneira, que acabaram por tornar-se semelhantes a dormir e fugir, dando bons argumentos para defender a grafia "sobir" e "fogir", há razões que levam a ortografia a rejeitar tais formas. Em primeiro lugar, os verbos remontam a formas latinas que têm u no radical – subĕo, is, īvi ou ĭi, ĭum, īre, «pôr-se ou vir debaixo de algo, ir-se aproximando de um lugar alto vindo de baixo», e fugĭo, is, fūgi, ĭtum, ĕre, «fugir, esgueirar-se, pôr-se em fuga, pôr-se a salvo, desaparecer, evitar, subtrair» (Dicionário Houaiss). Em segundo lugar, embora, em Portugal, dormir soe "durmir" no infinitivo e tenha [u] por efeito da regra do vocalismo átono noutras formas verbais em que a vogal do radical não recebe acento tónico (isto é, nas formas arrizotónicas: dormimos, dormi, dormia e outras), verifica-se que grande parte dos dialetos brasileiros não chega a fechar essa vogal em [u] (d[ô]rmimos); em contraste, os verbos subir e fugir têm sempre [u] mesmo nas formas arrizotónicas (s[u]bimos, f[u]gimos), assim sugerindo que a vogal do radical é mesmo um [u] e não um [o].