Currently we have two distinct representations for CHAR slots: one that stores the CHAR(N) inline in the tuple when N <= 128 and another that stores it out-of-line from the tuple when 128 < N <= 255.
We could simplify the code and improve our test coverage by only using a single representation. I think that test coverage for the out-of-line storage has some large gaps so I don't have a high degree of confidence that it is correct in all cases.
The main benefit to the out-of-line storage seems to be that it consumes less space for NULL values. It could also improve cache locality in some cases. These benefits seem marginal though, particularly since CHAR(129+) is probably used only infrequently.