Извините, я не очень разбираюсь в JavaFX.
Но я бы предложил вариант 2. Если вы создаете все экземпляры в начале, вы собираетесь использовать всю загрузку памяти, когда вам действительно нужно использовать память только для компонентов графического интерфейса, которые в данный момент видны. *
Создать все компоненты для текущего экрана и показать / скрыть / отключить / включить их. Но не создавайте компоненты, которые не живут на текущем экране / окне / форме / диалоге.