When we cutover FieldCache to use shared byte blocks, we added the boolean fasterButMoreRAM option, so you could tradeoff time/space.
It defaults to true.
The thinking is that an expert user, who wants to use false, could pre-populate FieldCache by loading the field with false, and then later when sorting on that field it'd use that same entry.
But there's a bug – when sorting, it then loads a 2nd entry with "true". This is because the Entry.custom in FieldCache participates in equals/hashCode.