Attached patch is a body prefetching proof of concept. Currently to display a message at least two FETCHes are called. The first for headers and bodystructure and the second for message body. In most cases we can skip second call and fetch message body in first call adding "BODY.PEEK[1]<0.2048>" to the list.
On my server I've got a negligible gain, because of very quick FETCH (dovecot 1.1) and not havy load, but I like to know how about yours. We could apply this as an option.
p.s. you can increase prefetch size changing 2048 to e.g. 4096 in the patch. Currently it's hardcoded.