Re: Cores n sockets and a license to print money...
I hope this help you...
The "per-core" licensing model has been around for a while, it kicked in for the Windows Server operating system when Server 2016 come out.
The reason for this is that that Microsoft was missing out on revenue. The old licensing covered you for two sockets (so in your example above, you would have needed two licenses to cover a 4 socket server). Because of this, people tried limiting their servers to two sockets with as many cores as possible.
Microsoft amend their structure with the justification that in aligned their Online Azure licensing (which is per core) with their on-prem licensing, thereby allowing businesses to make a better comparison.
The new licenses are still tied to two sockets. A pack of 16 core licenses is pretty much the same price as one of the old 2 socket licenses. The 16 core licenses can be spread across 2 sockets. You can also purchase 2 core add-on packs. Therefore you have the option of purchasing 2x16core packs (approximately the same price as before) or a 16core pack a 6x2core packs, which should provide a saving.
With SQL Server licening I believe you have two options, license the host (28 cores in your case) or license the VM (4 cores). The latter can mean you move out of license compliance if someone bumps up the number of cores assigned to your VM, but that is something you need to deal with internally. Licensing the host allows unlimited SQL servers to be run on the host. When licensing virtual servers, a minimum of 4 cores have to be licensed regardless.
This should help: https://download.microsoft.com/download/7/8/C/78CDF005-97C1-4129-926B-CE4A6FE92CF5/SQL_Server_2017_Licensing_guide.pdf