I see nothing wrong with it and it would break code like it's going out of style otherwise.
Other than FPC doing it _wrong_, there is nothing wrong with it. Fixing that bug can only break code that is wrong... no great loss there and wrong code should go out of style anyway.
Please don't compare d with fpc when d can't do something fpc can.
I remember at least one case where you compared FPC to Delphi to imply there was a bug in FPC but, of course, it's ok when you do it but not others.
You say whatever you want but if compiler can do something useful where the other cannot, I prefer that to be a bonus.
And yes, there are things D can do where FPC still in the back on and it's been demonstrated many times only to get slapped back telling me and others that is the way it is, so you need to do extra work to overcome issues that don't work as expected but works fine in Delphi.
I won't get into this because it looks like someone wants to start a flame war on something just because they fell, they can but facts are facts.
As for the WITH control statement, I've ported D code over that uses that WITH with returning items from a function that seem to work just fine in D and also FPC. Basic facts about WITH is it creates a local branch of identifiers. In this case a RECORD where that record maybe referenced several times read or written while inside the WITH.
I get the impression maybe some language features are misunderstood so some would rather have it removed instead of grasping it.