@romainbsl I recommend using the Type Safe Builders rather than FXML in your TornadoFX projects. The FXML support in TornadoFX is missing some of the nesting that I think is important for larger projects (fx:include, for example). Also, the Builders are the main focus of TornadoFX, making it more than just JavaFX + Kotlin.
For smaller programs, the JavaFX Properties versus Model is duplication. However, for larger programs, you're more likely to encounter a divergence between the Model and the View. This makes the ViewModel and ItemViewModel more valuable.
Check out the commit() and rollback() features of this architecture. Even though the Model may have a similar set of properties to a JavaFX Property-based class, the Model represents Record State while the JavaFX class represents Screen State. That is, there is a commit() lifecycle in TornadoFX that keeps a ViewModel 100% in sync with the UI which isn't desired in the Model until the user takes a deliberate action like a Save.