Met "het hele resultset wordt overgestuurd" bedoel ik precies dat.
Mysql formuleert een resultset a.d.h.v. een query en stuurt die door naar de client, geen gedoe met "per call een result oversturen" etc (ik moet er niet aan denken dat elke fetch-call een netwerkcall zou zijn

).
Afhankelijk van wat je precies doet en de grootte van je resultset zal het wel degelijk sneller zijn om een losse count-query en een losse data-fetch-query uit te voeren, bij een resultset van bijvoorbeeld zo'n 50000 records van elk 1KB zou er dan 50MB aan data overgestuurd moeten worden...
En ik weet niet wat een "echte" sql-rdbms doet in zo'n geval, sommige sturen de data door per brok van X records/bytes, anderen sturen alles door.
Sommige bieden je cursors aan door je resultsets, die je dan over verschillende webpages kan hergebruiken. Maar ook die zijn niet perse heel handig, aangezien dat weer erg veel sql-server-sided resources kost, zeker bij webpages waarvan je geen garantie hebt dat er nog wel een vervolgrequest komt...