If you are using the snap package of LXD, you only need to perform the second step.
If you are using the deb package of LXD, you need to perform both steps.
A snap package of LXD is not required to setup GUI containers, it just makes it a bit simpler (one step instead of two).
If there is some Windows application that is really useful to have on Linux, then it makes sense to invest the effort to create a snap package. The snap package will be usable to everyone. There are already Windows games that have been packaged as snaps, and the process could be replicated with some effort (example: https://github.com/snapcrafters/tmnationsforever).
The GUI container instead, is helpful if there is an application that you would like to run but cannot invest the effort to package it as a snap.