the behaviour does vary by language, but the reason I go by the general meaning of variable (eg: a repository that can hold different values over the course of execution) is that if the definition remains limited to languages that have enforcement methods, everyone else not only gets a different meaning (immutability as per Haskell is actually closer to what other call constants plus the mechanism to derive values out of them) but gets stuck with something that is purely dependent on code review.

Well, that and my own preference to call them variables if they, you know, vary and constants if they get stuck with the value initially bound.