Да, но в тех понятиях в которых чаще всего общяются ITшники, именно такие формулировки и работают, также подтвержденные на практике, а вообще это все более относится к математике
Но это ограничение языка. В котлин с sealed class всё будет ок, и принцип тот же.
Всё так, аналогичный костыль можно встретить даже в стдлибе джавы. Но не стоит оправдывать плохой код отсутствием языковых фич, надо искать нормальные решения — полиморфизм и double dispatch.