I have been doing quiet allot of work with vCD recently, In the last environment I setup for a government agency I came accoss something I really had not thought off while using vCD.
That is how vCPUs are allocated as sockets and cores when created through vCD, This came to light when I was asked to setup an entire development environment by lunch time using vCD. When applying a licence on a bit of software within the guest OS I released I had 4 Sockets when I was only licensed for 2, after some testing it looks like what ever vCPU is selected in vCD it creates that many sockets, so 8vCPU is 8 sockets 1 core, 16vCPU is 16 sockets 1 core.
This is quiet annoying and from what I can see is not configurable within vCD as of 1.5.1. The way around this is the create the virtual with the desired vCPUs and then before cataloging, change the number of sockets and cores in vCenter. Now every virtual that is created from that catalog item will now have a better socket/core configuration.
I changed the virtual i needed to 1 socket and 4 cores, I was then able to run up 10+ machines with this configuration from the original.