In a lazy-loaded model, should all data be loaded from the database when asking for a value (SELECT * FROM ...), so there is only one db query, or just the value you asked for (SELECT value FROM...), so there is a db query for every value you ask for (cached).
Effiency, speed, and database load should all be considered.
$id = $user->id;
$name = $user->name;
SELECT * FROM users WHERE ...;
$id = $user->id;
$name = $user->name;
SELECT id FROM users WHERE ...;
SELECT name FROM users WHERE ...;