Yes, Server releases memory entirely once a module or project has finished execution. Moving memory-intense parts of a workflow into modules might help.
Keep also in mind that derived tables are executed in parallel which means that they will consume RAM simultaneously and their memory consumption will add up.
If you want to separate in time memory-intense calculations you can use the “Synchronize” action to ensure that modules in derived tables are not called simultaneously, but one after another. In this case memory used by the 1st module will be released before 2nd module starts execution.