Явно неверно вручную вызывать какой-либо ValidateDelete() в _ds.Delete() вообще.
Я об этом.
А так, да. Баг. Но и код table.ValidateDelete() в _ds.Delete() - это желание доломать
Нечего делать этому методу таблицы на уровне формы. В любом случае.
Если у нас есть foo1() --> foo2() -->foo3() --> foo4() то вызывать foo1() { foo3() } представляется хакерством.