The main point is that behaviour are not applied to all character types described in docs. You can see it in my example.
There is only one "character type" in PostgreSQL, it is spelled "character" (char is a valid alias).
For the second point, please, check chapter 8.3 for this
"Trailing spaces are removed when converting a character value to one of the other string types. Note that trailing spaces are semantically significant in character varying and text values, and when using pattern matching, that is LIKE and regular expressions."
IOW, The "character" data type is one of three "string-class" types in the PostgreSQL system. "character" has no concept of "semantically significant trailing whitespace". Therefore when converting from "character" to one of the other two "string-class" types (varchar, text) you will never end up with a resultant value with trailing whitespace.