Hmmm. Got bored last week so I played with improving JFFS2 mount time. By delaying data node and data payload CRC checks till after the mount, on the basis that we don't actually _need_ them done that early, and by using a pointer directly to the flash rather than copying into RAM every time, we get a fairly dramatic improvement in mount time -- from ~3s to ~0.3, and from ~5s to ~0.75s on a iPAQs with 14MiB and 31MiB file systems, respectively.
Not bad. Now the iPAQ bootloader is slower to scan the JFFS2 to find the kernel and parameters in it than the kernel is it mount it later :)