Обратная совместимость для конст функций? Там так давно завезли вызов других функций, что уже есть что ломать?
С тех пор как завезли - совместимость должна быть.
Но в любом случае, вторая часть моего поста более интересна чем обсасывание обратной совместимости. Разверну ее:
если ты попытался вычислить какую-то функцию с лимитом в N шагов, у тебя есть три варианта.
1) Произошла паника/UB/etc. В общем-то, мы можем в такой ситуации плевать на обратную совместимость, давать ошибку компиляции и жить.
2) Функция успешно вычислилась. Прекрасно, подставляем эту константу куда надо и радуемся.
3) Функция до сих пор не завершилась. Если мы пишем обычный оптимизатор, то все ясно - просто забрасываем эти попытки соптимизировать это выражение.
Но в этот момент мы как раз теряем гарантию обязательности оптимизации константых функций, потому что какие-то совершенно прекрасные, корректные во всех смыслах функции мы не будет вычислять при компиляции.