TComponent destructor frees wrong observer list
The destructor of TComponent frees an observer list that does not belong to it, instead it frees the one inherited from TPersistent:
This breaks the ooFree part of the IFPObserved/IFPObserver interface completely. Looks like this a typo from back when Delphi-compatible observers were introduced in 594090b2. Should be FreeAndNil(FDObservers) (with a D).
(Apoplogies for not using an issue template, the Gitlab editor doesn't really load right now and I'm typing most of this blind.)