Processes can release memory back to the kernel, but the released memory remains within the process's address space for potential reuse rather than being returned to the system. This is due to how memory allocators work - they keep freed memory for future allocations by the same process to avoid system call overhead.