Based on the assumption that requiring object targets to be OB_EMPTY makes any other object compatible as a target. If the assumption is wrong can be reverted. Only the Cast modifier uses this at the moment and to me it looks like Cast only uses object transform so should be fine.