По-моему, под это требование подходят большинство компиляторов даже Си, потому что в них диапазоны переменных, включая тип int, определяются во время трансляции, а не во время исполнения. Либо это требование надо уточнить, либо оно отнюдь не о гибком задании диапазонов.

Проблема же работы с допустимыми диапазонами заключается в том, что они менятся от действия к действию.
Также, необходимость постоянного согласования переменных разных диапазонов - это одна из причин ошибок. И, кстати, Ада содержит в себе типы с гибкими диапазонами, с помощью которых удобно отстреливать себе ноги.