Мне кажется, что наличие "функции, которая всегда возвращает 5", ломает или разбавляет смысл "вызова функции". Должна быть причина или потребность в этой возможности, или она не будет в С++ 11. Почему он там?
// preprocessor.
#define MEANING_OF_LIFE 42
// constants:
const int MeaningOfLife = 42;
// constexpr-function:
constexpr int MeaningOfLife () { return 42; }
Мне кажется, что если бы я написал функцию, возвращающую значение буквального значения, и я подошел к обзору кода, кто-то сказал бы мне, я должен был бы объявить постоянное значение вместо записи return 5.