ORM caches query results, so if you run a second query for a PK you have already, you get the object from cache back.
Partial selects create incomplete objects (properties missing), which is potentially very dangerous when you start manipulating them (or saving them), and should be avoided.
But for v2 we're going to completely rewrite the ORM. If you have idea's about features or implementation, create an issue here: https://github.com/fuelphp/orm/issues so it can be discussed.