Was the memory originally wired to something. If the ram is placed in the design, yet not doing anything, the compiler will simplify it out. For example, even if a single address line was always a '0' or '1' because of logic feeding the ram's address input, the compiler would automatically cut your memory in half since half of the ram wouldn't ever be addressed.
If you only wired 1 of the output bits, or if 1 of those wired output bits was ignored due to logic, again the compiler would cut your ram in half, basically turning it into 1 bit ram since it half was never read.
Yes, FPGA compilers are that aggressive in automatically saving resources.
EP4CE10 has a crap load more memory than the EP4CE6.
Remember, you are only 2 blocks shy of fitting the design into a EP4CE6. Or, 16 lines less of picture will also fit into an EP4CE6.
If earlier, you only wired 1 bit of ram to generate that image, the compiler simplified the ram down to 16 blocks, or 1 bit wide, IE half the ram size.
If you didn't wire the ram output to anything, then the compiler would have ignored the ram when building the FPGA.
It's not like a C compiler where you allocate ram. The FPGA compiler thinks and see if parts of your design actually generates some sort of effect on the output pins. If not, that portion of your design gets thrown out, completely ignored.