Tévedsz. Az IEnumerable<T> extension-ök Func<>-torokkal operál, ezekben tud a rendszer pl. SQL kódot generálni, mivel nem lát bele. Az IQueryable<T> extension method-jai használnak Expression<Func<>> típusú paramétereket, ezekbe lát bele a rendszer. Ennél fogva egy Where() hívás a te megoldásoddal azt eredményezné, hogy a szűrés a memóriában valósul meg, nem pedig pl. az SQL szerveren (és nem csak a limitált adathalmaz jön vissza).
És önmagában az IEnumerable<T> semmi köze a deferred executing-hoz.