Aquí no hay ningún dilema, es un problema de diseño de algoritmos, y finalmente, de la aplicación. La función devuelve los valores en relación con lo que hace y dependiendo de cómo ha sido definida. La intuición no tiene cabida en este problema, te recomiendo cualquier publicación sobre diseño de aplicaciones, o bien, OOP, por ejemplo:
http://www.amazon.es/s/ref=nb_sb_nos...+objetos&ajr=0
Saludos