I don't care what the Pascal standards state,
and that's one of the many reasons Pascal has been going nowhere for years now.
most people never write standard Pascal.
Most people do write standard Pascal, admittedly with a lot of extensions but, a lot of FPC is standard Pascal, e.g, compound statements, if statements, while statements, etc, etc, etc. Wow!! unknowingly, you've been writing standard Pascal.
ISO Pascal does not even support units. Pascal, at least the dialects people use in the real world, is not standardized, it's a quasi standard like java, where the major distributions define the functionality through their implementations and documentation.
A lot of that is true but, if you knew how to write a compiler you'd know that "with" does _not_ create any temporaries and you'd also know that, outside of a function, function results cannot be treated as lvalues and, not only that, you'd also know why.
This is intended behavior for FPC, like it or not, but it's how the language works
I don't know if it is intended or not but, one thing is absolutely certain, it is wrong.
And what cases do you mean? I only know of cases where the result of a function will be written into a temporary variable, like with does.
It is NOT the "with" that causes the function result to be held into a temporary variable. The result will be held in a temporary variable if it does not fit into a register (or sometimes, two) whether or not there is a "with". You should know that, it is _obvious_ and the reason why is obvious too.
Functions don't Return lvalues,
Of course they don't and for that very reason a value cannot be assigned to them outside of the function. You cannot have "FunctionName.FunctionRecordFieldname := somevalue" whether there is a "with" or not because as you stated, function results cannot be treated as lvalues outside of the function.