See screenshots, see RAX register value.
VAR-init is being executed, but CONST-section is instead emitted into the DebugInfo
Win64 trunk FPC/Laz, DWARF 3 mode
procedure Test(const Recur: integer);
const
cVar: integer = 30;
var
initted: integer = 20;
regular: integer;
begin
Inc(regular);
A tangential question: since there is anyway the code lines explicitly emitted, why limiting it to constant values, why not allowing a full-fledged expressions, like
var gVar: integer = 10;
function M(): integer; begin result := gVar + 100; end;
procedure Test(const Recur: integer);
const
cVar: integer = M(); // 30;
var
initted: integer = M();// 20;
Implementing this would probably be naturally re-used later when you would be implementing Delphi XE11's Scoped/Inline variables.