Man sollte natürlich immer sicher stellen, dass nur auf korrekte Typen gecastet wird.
if O is Txyz ... ist also nie verkehrt, um auch andere Fälle explizit zu behanden, bzw. ein falsches casten auszuschließen.
Aber auch nach bestandener Prüfung würde ich mit "as" casten. Das finde ich übersichtlicher, obwohl es dann eigentlich unnötig ist.
Wenn man ausschließen kann, dass falsche Klassen...