Struct Fields – Another Place Where var Feels Out of Place

Interesting topic.

I don’t think habit is the reason here. Maybe folks advocate for consistency and familiarity but those are about ease of use rather than unexamined custom. I think the primary reason for var (in general) is that it supports correctness that the compiler can enforce. Especially in kernel programming (which can include many lines of complex logic) it is possible to intend to declare a new variable and instead accidentally reassign to an existing variable.

def main():
    x = Int8(0)
    # ... lots of code ...
    x = UInt.MAX   # you think you're declaring a new variable
                   # you're actually invoking Int8's implicit constructor
    print(x)       # prints -1, not UInt.MAX

using var = x here raises a compiler error.

As your thread is about struct fields in particular I think @christoph_schlumpf put it well:
In all usages var has the same meaning: "a locally declared owned value binding“.