There's a cost to everything, including enumerating just the fields you need from the query. When a new column is added, does a developer now need to revisit every query involving that table, update if necessary, and retest? That has a very real cost in terms of time and money, probably more than the cost of 'SELECT *', or not using an ORM.
A lot of times, the technically 'optimal' solution isn't necessarily optimal.