Js> I have understood that the kernel isn't able to free memory Js> it has allocated. Js> Is that true?
Depends what you mean. The kernel cannot (in the present version) reclaim memory it kernel has allocated to sigma0, and sigma0 won't return it voluntarily. Nor will the kernel release to sigma0 any of the "reserved" RAM. (But that's really a sigma0 protocol issue, and you could use a separate sigma0 which behaves differently. But the present kernels won't be able to make use of that.)
If your question refers to memory allocated to kernel data structures (TCBs and page tables) within the kernel reserved memory regions, there is no reason the kernel cannot reclaim that (e.g. when a task is deactivated).
What about the case when the kernel would need more memory for page tables and the initial servers have already allocated all memory from sigma0?