This optimization has been unblocked by #168
For operations that could cause a conversion between store types we can first compute the cardinality of the op. The operation can then continue, using the correct store type, removing the need to ensure_correct_store.
This will make the best-case slower, but the worst-case faster. Delta for average-case will be data dependent.