Así es, State puede tener varios valores y cuando interesa saber si es uno de entre varios entonces IN es lo mejor. De hecho, cuando más lo he usado es justo para lo contrario: saber si el DataSet está en edición o inserción sin importar cuál exactamente:
Código Delphi
[-]
if DataSet.State in [dsInsert, dsEdit] then
y coincido contigo pues es mucho más cómodo que usando OR.
Por cierto, en esa misma unidad DB se define la constante
Código Delphi
[-]
const
dsEditModes = [dsEdit, dsInsert, dsSetKey];
de manera que de hecho se puede poner
Código Delphi
[-]
if DataSet.State in dsEditModes then
para saber si el DataSet se está editando.
// Saludos