You sure it doesn't? I don't see myself making a game update the virtual BG with new tile indexes as fast as a game like Sanic or Bio Force Ape while it uses part of vblank to also update the tile sets. Doesn't sound viable to me. I'm not challenging your opinion or anything, I just want to hear a detailed explanation of your statement.
Well, the tilemap itself would have more entries to update, but dynamic tiles are just the position number/frame to write to vram. Dynamic tiles and hsync scrolls aren't affected by scroll speed. They are a constant factor. That just leaves the tilemap update.
How fast does Sonic scroll? Let's say it's 64 pixels per frame. That's 15 full frames scroll per second in PCE low res. That's pretty damn fast! A full screen has completely scrolled by in just 4 frames (there are 60 frames in a second for the video). That's 8x2x28= 448 bytes to update to vram. Just using a simple load/store loop (no block transfer), that's ~11 cpu cycles per byte. That's 4,928 cpu cycles (4.1% cpu resource per frame). There's 16,380 cpu cycles in vblank with a frame of 256x224. (262-224-2)* 455 cpu cycles. That still leaves 11,452 cpu cycles left over in vblank.
But here's the thing; I wouldn't update the tilemap during vblank for scrolling. The PCE can write vram during active display. And the virtual map is large enough to write offscreen during this time. I would (and do) do this during active display. That frees up all of vblank. SATB doesn't need to be updated during vblank either. There are also ways to do dynamic tiles without having to resort to vblank as well. Vblank time is more of a NES, Genesis, SNES time of thing/limitation. That's why the Genesis and SNES have local to vram DMAs, because such a short amount of time - the cpu isn't fast enough to update vram. The NES only has a sprite DMA option.
Vblank should be saved for critical things that can't be double buffered or done off screen during active display (like palette ram updates, etc).
Edit: Scrolling 64 pixels per frame is ridiculous and unrealistic, or a rare special case. Even 8 pixels per frame is pretty fast for scrolling (almost two screens per second).
*If you're using HuC and the default map libraries, well then maybe you'll run into some issues. Those map routines are slow and unoptimized. They're are meant for general flexibility.