The reason this bothers you is because you're trying to apply your imperative experience to a functional language. Once you stop doing that, F# will make a lot more sense. For example:
let a: int = 1
This isn't assignment; it's a binding that permanently associates the identifier `a` with the value `1`.