Míralo de esta forma: Es un flujo de datos y debe poder mover cualquier dato. Si tomara EOF como marca de final querría decir que no podría, en ningún caso, tomar ese valor aún fuera numérico para una operación matemática y por tanto se limitaría, de forma artificial, el rango de valores que pudiera tomar.