Readout speed depends on
a) the protocol used
b) how many ecu's respond to that protocol
Obviously a Iso 9141-2 protocol running at 10.400 baud is a lot slower than a Can protocol running at 500K baud.
Also the timeouts between messages are greater when using Iso protocols.
For instance it is very normal for a car to wait 25 - 30 mili seconds after receiving the checksum of a command, before sending the answer. The second ecu will even wait a little bit longer, say about 30 - 35 mili seconds.
Then the scantool has to wait for 55 miliseconds after receiving the checksum of the last message from the last ecu, before it can send another command.
These delays will slow down the transfer rate significantly.
Bmw's normally have 1 ecu for the engine, except some 12 cylinders, who have 3 ecu's for the engine, which all respond. When you have an automatic gearbox, that ecu will also respond.