I just found something.
If you use HeapTrc, it works perfectly, if you don't use HeapTrc, it does this..
P.S.
I did a loop taking the size of the previous and allocating a new one, it stays at 1028, so this means its doing page alignment.
but that isn't good for the user to expect reading it back to be what it was set for.
P.S#2
IT appears the memory manager without heapTrc is using whatever chucks of memory that is available, because starting with different values gives you random results, but they are all sufficient to hold the requested data, just not an accurate measure for use in code elsewhere.
This at least needs to be documented to use it for an indicator of memory allocation in user code.