To overcome this keyboard limitation in vim, Control-[ maps to ESC for programs which respect ASCII codes (Terminal and MacVim are two examples). In combination with swapping Caps Lock and Control (via System Preferences), I have found the need for an explicit ESC key greatly mitigated.
HTH