The command line tool should be able to parse %[ and %] in the file naming pattern just as the GUI app does. Instead, it treats them as literal strings.
While with the GUI app one can surround metadata identifiers by %[ and %] to have the app ignore those identifiers (and any space also contained within?) when those identifiers are empty (in order for, for instance, prefix track number with disk number only when the latter exists, with %[%D-%]%n), the command line tool interprets those brackets as literal and adds their contents to the filenames regardless.
xld --filename-format "%A/%T%[ (%y)%]/%[%D-%]%n %t" -c <cue-sheet> -o <output dir> <single-flac>
With the example pattern above, I would expect the creation of this hierarchy in the output folder:
Literal %[ and %] as well as contained spaces are added to all track file names irrespective of whether year and Disc_no metadata exist.