You're working under a misconception:
Just because your process reserved 5GB doesn't mean it has to use them. And vice versa, only because your process did not yet use more than 2GB of RAM doesn't mean it has not reserved more.
On basically every modern OS for application processors (so, x86_64, ARMv8…), this is the normal way of dealing with process memory, including the virtualization process.
Your VMWare player correctly reserves 5 GB of memory. But it only access the pages that the executed Windows (and its processes) access – and if they did not yet access all 5GB of RAM, that means the memory "used" is less than the memory "reserved".
So, no problem here; all going according to plan! Which you can clearly see in the Windows screenshot: Windows sees all 5 GB which were reserved. As soon as you actually run memory-intense workloads in that windows, you'll see the memory actually used by the virtualizer grow as well.