Das, was du mit FXML machst, nennt man auch "deklarative UI". Es ist der gängige Weg für die meisten modernen UIs (Google's Android, iOS, M$).
Nachteile fallen mir eigentlich nicht so recht ein, es sei denn, du empfindest es als schlimm, dass eben deine GUI die die Logik nicht mehr notwendigerweise zusammen in einer Klasse sind. Grundsätzlich finde ich, dass ein dieser Ansatz aber wirklich hilft, nach MVC zu entwickeln, bzw. streng genommen sogar MVVM (
Model View ViewModel ? Wikipedia).
Einziger etwas seltsamer Ansatz bei FXML ist, den Controller im FXML zu verlinken, aber dafür gibt es schon Bibliotheken, es anders herum zu machen.