It pretty much has to be that way.....
What value should be reported free if malloc has 1000 1000 byte blocks free?
1000 (ie the largest single block one could malloc, or 1000000 the total amount of availible blocks?
It gets really complicated.. so we just report the largest contiguious free block availible...