Wait a sec there!
The programme is obviously reading the true clock speed of the memory, rather than the effective. What is special about GDDR / DDR memory, regardless of 1/2/3/4/5 etc... is that the memory is double data rate, meaning effectively per each clock cycle two instructions can be handled. So, when some programmes say exactly half of what you are expecting, then more than likely it is showing the actual speed rather than effective. If you tried to overclock it, then you would have gone for a 4000Mhz memory clock which would have caused major artifacting, likely instantaneous driver crash/ pc hang under 3d load and could damage the memory.
An example is running DDR2. Say the FSB of the cpu was 333Mhz, if you chose to run the memory at a 1:1 DRAM:FSB ratio (equal clocks) then both the FSB and memory would run at 333Mhz, but being double data rate, the memory would be effectively running at 666Mhz (or 667Mhz).