As already commented, this different behaviour of !/resizable smells like a bug (somebody might consider filing an issue 😉
A shorter (than sizing manually) way around is to explicitly fit the stage to the scene:
primaryStage.setScene(scene);
primaryStage.setResizable(false);
primaryStage.sizeToScene();
Just noticed that this works for jdk8, but not jdk7.
For convenience, a bug update: the original report filed by jewelsea was closed as a duplicate of (in new coordinates) https://bugs.openjdk.java.net/browse/JDK-8089008 – still open, commented to be win-only.