I wonder, what you are trying to achieve in the end when doing this? Is this just about resources in system with very low memory? [...]
Yes, exactly -- sorry I didn't mention it earlier.
But another thread could release the remaining rootserver resources assuming the root server has given it access, i.e. gave it a copy of the caps.
Could you please briefly explain how this procedure would look like? From my understanding, while calling seL4_CNode_Delete on i.e. seL4_CapInitThreadTCB would remove this capability, the memory which was used for it wouldn't be freed as it wasn't derived from Untyped capability, but the cap was created directly using cap_cnode_cap_new, and thus there is no untyped capability I could call seL4_Untyped_Retype on to reuse this memory in another thread. Or maybe I got this completely wrong? -- Marcin