This is normal for any FPC application.
FPC has a memory manager between your code and the OS.
Your code (and either edit, or any other component request memory from fpc.
Fpc allocates huge chunks from the OS, and then hands them to the code. If the code frees them, the fpc mem mgr, keeps them for later re-use. So your OS does not see this.
This is normally no problem, because every app has its own mem space. The "idle" memory will be swapped to disk and done.
Only if you have no swap space at all on your disk, then this behaviour may be an issue...
On linux, you can use CMem (add as the first entry to the "uses" clause of your "program" / not "uses" of "unit", but "program").