If you declare a variable in this way in C, it can never be assigned. Not once — zero times.
What is or is not good practice in C has little bearing on or relationship to functional languages, so I'm not sure why you bring them up in this context.
So all functional languages (where immutability is the default) are mostly useless?