Usando fx: id como CSS id en FXML

Parece que en FXML si no especificas una ID (CSS), entonces el valor fx: id se usa por defecto. Mi comprensión anterior era que los dos eran completamente disjuntos, ID para CSS y solo CSS. fx: id para enlaces @FXML en el controlador.

Esto se puede demostrar con una pequeña prueba: tres botones, primero con ID, segundo con FX: ID, tercero con ambos tipos de ID.

<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
   <children>
      <Button id="cssid0" mnemonicParsing="false" text="Button" />
      <Button fx:id="fxid1" mnemonicParsing="false" text="Button" />
      <Button id="cssid2" fx:id="fxid2" mnemonicParsing="false" text="Button" />
   </children>
</VBox>

El uso de Node.lookup (cssSelector) permite la selección por fx: id

@Override
public void start(Stage stage) throws Exception {
    FXMLLoader loader = new FXMLLoader(getClass().getResource("/foo.fxml"));
    Parent p = loader.load();

    System.out.println(p.lookup("#cssid0")); // => Button[id=cssid0, styleClass=button]'Button'
    System.out.println(p.lookup("#fxid1"));  // => Button[id=fxid1, styleClass=button]'Button'

    System.out.println(p.lookup("#fxid2"));  // => null (if there is a CSS ID it takes precedent)
    System.out.println(p.lookup("#cssid2")); // Button[id=cssid2, styleClass=button]'Button'

    stage.setScene(new Scene(p, 200, 200));
    stage.getScene().getStylesheets().add("/foo.css");
    stage.show();
}

También CSS permite la selección por el fx: ID

#cssid0 {
    -fx-color: red;
}
#fxid1 {
    -fx-color: green;
}
#cssid2 {
    -fx-color: blue;
}

Esto no parece estar cubierto por la pregunta existente¿Cuál es la diferencia entre fx: id e id: en JavaFX?, Javadoc paraNode.getId () o en cualquier otro lugar que pueda encontrar.

Esta característica es realmente útil ya que solo necesitamos especificar un solo fx: id que se puede usar para controladores, CSS y pruebas unitarias usando test-FX.

¿Está bien usar este enfoque o estoy construyendo suposiciones sobre el comportamiento indocumentado que podrían cambiar en una versión posterior? ¿O está documentado en algún lugar que me falta?

Respuestas a la pregunta(1)

Su respuesta a la pregunta