That is correct.
The following code will be translated to a char literal and will work as expected:
In that case the compiler will generate an immediate value.
Note that writable typed consts are a means to preserve state over multiple calls, and not really consts as explained above. A real const will if possible be translated into an immediate value.
Example:
The - local - test const will be incremented over multiple calls in $J+ mode. Something that can not be achieved if it was a var:
program x;
{$APPTYPE CONSOLE}
{$mode objfpc}{$J+}
function myconst:integer;
const test:integer = 0;
begin
inc(test);
result := test;
end;
var
i:integer;
begin
for i := 0 to 9 do
writeln(myconst);
readln;
end.