Hey I had the exact same question several months ago! :)
So I asked around and as it turns out this is very problematic for the compiler. When evaluating functions as constant expressions, the compiler switches to like an "interpreter" mode where no template instantiations can be performed. Because of templates, invoking the function with different parameters can get different results.
One related problem with this is that this would mean that the function for all intents and purposes just like a template is: You can possibly get different functions from a single function.
constexpr parameters also suffer from this problem.
So, this was an explicit design decision AFAIK.
P.S. it's consteval now :)