Divekicks are faster than running, but only if you can sustain the divekick long enough to make up for the 6 frame windup. Thankfully jumping does not slow Goku down once he runs, so we can jump as high as we can, then divekick, and this will be faster as long as the terrain under Goku is low enough from the terrain he jumps off to make up the frames.
I saved 4 frames before the first fight doing this:
http://tasvideos.org/userfiles/info/44066904840703641
---
EDIT: Rather surprisingly, I did the exact same thing as MUGG.. who submitted this movie with the same frame amount 30 minutes before mine:
http://tasvideos.org/userfiles/info/44066406842318028
---
EDIT: Well, since we're at it, and now that I actually have adresses, I might as well beat MUGG.
Doing a 23 frame jump is better.
248 208 168.. (21)
312
248 208.. (22)
312 272
248 208 168.. (23)
312 272 232 192 152.. (24)
There are a few mechanics to note here; this happens because when you release A, the game slows down Goku's jump, which correlates which sharply dropping off speed: Goku's Y speed is set at 248. Indeed, when you drop A with low jumps (for example, holding A for 6 frames): (952
248 208..).
Why does it not happen when held_A_duration > 23? Simply because 22 is the maximum jump duration. Since A is held for > 23 frames, for the game, it is as if you never released A, so the 248 set never happens.
This may not seem like much, but you'ill notice that the way speed is applied to Goku is based off this speed. So, "starting" the after-jump with a Y speed of 248 will mean the next frames will have a Y speed a little higher, than if Goku has 232 speed.
Be very careful with divekicks and lag! In some occasions, even though the divekick works and the speed adress is properly updated, Goku's X position is not updated for 1 frame during the divekicks, which effectively makes you lose a frame. (The frame is not marked as lag in the emu, though I suspect it to be.) I didn't notice this and wondered why I lost so much subpixels over MUGG, until I compared my second divekick with his. Delaying the divekick a bit worked.
As such, I saved 128 subpixels over MUGG. Movie:
http://tasvideos.org/userfiles/info/44067894425415590
---
To finish, here's a file with 17 frames of improvement up to the start of the second fight (synced for Bizhawk 2.2.1):
http://tasvideos.org/userfiles/info/44073066059345383
The first fight is just copy-pasted, I tried to improve it a bit but it was already very well optimised. The only change is the jump at the end which is made so that the second divekick is more towards the edge of the screen.
After that, one long divekick to gain some frames. I could have made one long divekick or two slightly shorter ones, but the long one ended up faster by a frame (probably because of the 6 frame windup.)