- The order of the qualifiers does not matter here. 'const type' or 'type const' is the same. I admit I have rarely seen a code style with the qualifier(s) after the type rather than before, but it's a matter of code style, and no two people have exactly the same, so... (It's actually a good source of endless wars.)
- Yes as mentioned above, not to be confused with the distinction between a const pointer and a pointer to const, which is a different case. Not completely trivial to understand at first. But the const is either after or before the '*', so the syntax is different. Not your concern here anyway.
- 'const' may not look useful in the case your showed, but at least it conveys the intent of the programmer that the variable should not be modified after having been initialized (and yes, obviously you can initialize a const variable, otherwise how would you ever use them? But you can't modify them after that.) For instance, in the first piece of code you showed, it means that b should not change. As it is, it doesn't make a difference because it's used immediately in a call to a function, and nothing else, but if there is any code added in between, or after the call, in future modifications, then it prevents you from modifying b for any reason you may have. So yes, it can be useful.
Remember that code is written to be understood and maintained, not just to compile.