The Duplicator.duplicate() will duplicate a node as you mentioned. If the node has an ImageView node inside it its graph, it should duplicate the underlying image as well.
Node performance is slower than image based designs as pointed out in the article you linked. In some cases though, you don't have to rely on making your entire design images. Sometimes you can greatly improve performance by simply having the JavaFX engine convert your nodes to a bitmaps by setting the cache property on your nodes to true. I have had good luck with that approach whenever I'm applying a lot of static effects to nodes that don't need to be redrawn all the time.