That is correct.
The difference is, that charAt() does not give the syntactical impression of being able to assign a single character. Bracket notation however is known from arrays and can easily be confused to show the same behaviour for strings. In addition an assignment silently fails.
Don't get me wrong. I am not advising against using bracket notation. I only mention the danger of misunderstanding its behaviour.