>EMPTY is optimizable if there is an index with INDEX ON EMPTY(FIELD).
Right, of course, but who would create such index? That's why I didn't even mention it.
EMPTY is noted as not optimizable in the help as a note near BETWEEN and INLIST because EMPTY does not optimize the way BETWEEN and INLIST do. That is, those functions will use an INDEX ON FIELD.
Yes. Or you can use IN (....), which now can hold unlimited (limited by memory) number of items.
If it's not broken, fix it until it is.
My Blog