Enable sloppy focus/focus-follows-mouse and both alt-tab instances go away, reducing it to 5 keystrokes - just drift your mouse pointer over the other terminal window. (And, yes, I'm pretty sure both Windows and OSX have options/plugins/tweaks that let you use sloppy focus. It's not an X-only thing.)
Even without that, you forgot to account for needing to go back twice in command history to return to editing the source after running it. Include that forgotten "(UP)", and it's a tie at 9 and 9.
More importantly, as already mentioned, keeping your vi(m) session open lets you keep your undo history, which can be far more valuable than shaving off a keystroke here and there.
Using multiple windows/tabs also generalizes nicely to working with multiple source files (you do organize your code into modules rather than making it all one huge file, don't you?), since you can view and switch between the different source files trivially rather than having to try to find the correct file in your command history.
(Am I the only one who thinks this entire quest is a bit silly, though? I know that the primary bottleneck in my coding is not the number of keystrokes I spend in the shell... Not even close...)
In reply to Re^3: How to write out a Perl script and run it in as few keystrokes as possible.