[eluser]WanWizard[/eluser]
Some optimisation might be in order here, I ran into this issue as well.
From looking at the database driver code I assume this is done to keep to code generic, not all database platforms allow direct access to every record in the result set.
Having said this, the driver supports a _data_seek() method, so it would be quite easy to check if direct positioning is possible. If not, the seek would return FALSE, and you could fall back to reading the entire result set, and do your positioning using an array (which is what the code now does). Modifying this would mean changing a core library, or rewriting DB_result.php and finding a way of extending it.