Specifying a name for “this” is necessary because you may have nested object expressions which need to refer to different “thises” that are in scope.
I very rarely find alphabetical file listing useful. I find dependency ordering very useful. I suppose it might be possible to infer a valid order of dependencies but this just adds more work and complexity for the compiler. You could say the same thing about inferring a project dependency tree in a solution.
Many parts of F# syntax take some getting used to if you’re mainly familiar with languages with C-like syntax. But you just get used to it and then it doesn’t matter.