Well I don't know, color bitmaps functions for example
Well by stacking color bitmaps, your code is going to be pretty obfuscated, but that's none of my business ^^
Let say you have a 16x16 sprite :
Monochrome = 16x16x1 = 256 bits (black&white = 2 colors)
4 x monochrome = 512 x 4 = 1024 bits
4 colors indexed = 16x16x2 = 512 bits => half of the memory
But if you have more than 4 colors in your whole game it's going to be a mess to handle all the different color indexes.
16 colors indexed = 16x16x4 = 1024 bits => same size but WAY cleaner and faster code .
Because to draw 4 monochrome bitmaps your have to iterates through 4 bitmaps instead of 1, and to do a lot of bitwise operations. That's why it would be slower.
And when then you have to call 4 drawBitmap functions for each sprite, and remember which layers is which color, which is obfuscated code.
Reminder :
On 1 bit you can store 1^2 = 2 colors
On 2 bits you can store 2^2 = 4 colors
On 4 bits you can store 4^2 = 16 colors