Show me any code, after the cycle finished, the cycle variable isn't equal to cycle exists value. So, mr. confused? 
This is only the specifics of the current implementation, which can change at any time.
Let's take a simple code:
for i := iStart to iEnd do
Body(i);
This is FPC implementation (now!)
i := iStart;
if i <= iEnd then
begin
Dec(i);
repeat
Inc(i);
Body(i);
until i >= iEnd;
end;
As result at end i equal iEnd
This is Delphi implementation (also now, but for many years)
i := iStart;
Dec(iEnd, i);
if iEnd >= 0 then
begin
Inc(iEnd);
repeat
Body(i);
Inc(i);
Dec(iEnd)
until iEnd = 0;
end;
As result at end i equal iEnd+1
By the way, on intel platform code for Dec(iEnd); until iEnd = 0 is fatster, then until i >= iEnd, because read only one register/memory and test result for zero without compare.
Maybe later will be used even faster algorithm, so it is better not to rely on what is now, and believe the documentation.