It was a hack back in the days when the 640 or so MB on a CD was seen to be an amazingly massive data cache. The hardware specs at the time also never allowed for video data, so to shoehorn the CDG data onto the disk, tricks had to be employed to fit the data somewhere that was not commonly in use, but would not interfere with normal disk operation. The CD+G specifications was an extension to the standard audio CD format published by Philips and Sony that stored the audio as standard CD audio, but the graphics, encoded as 6-bit, 6x12 "fonts" drawn on a 288×192 grid on a 300×216 screen, are stored in the subcode channels R through W.
The problem for VLC and any other app trying to read actual CD+G disks is, although all the subcode channels are described in the specifications, many, if not most, hardware manufacturers failed to implement the full spec, and a lot of CD hardware is incapable fo seeing these subcode channels at all, so there is nothing VLC can do to read them.
A quick Google search will find a list of drives capable of reading the CD+G info.
https://www.karaokeshack.com/karaoke-burners/
Once the data has been RIPped from these drives, however, VLC should be able to read and play it back just fine.
HOWEVER, VLC appears to do this by scanning a directory for filenames that match the audio file being played, and if they are a CD+G file, playing that as well. This worked fine in some instances, however, few people store files in this manner anymore. Instead, to save space, people compress the audio using some audio compression format, like MP3, and then zip the resulting audio file together with the CD+G into a single zip file. (While this does little or nothing to reduce the size of the MP3, it drastically reduces the CD+G file) whole also having the advantage of reducing file clutter.
But VLC does not seem to actually create even a pseudo-folder for the zip file, and as such, does not see the file pair. Instead, it only looks inside the zip, finds the audio file, and plays that. Only if the zip is manually unzipped first does VLC play the pair appropriately.
As such, it totally misses the point of being able to play zip files!
So yeah, 3.x does finally support playback of files inside a zip, but still will not allow paired playback.