If there are no tracks, the size would indeed be smaller but this does not cause any harm even though it might look a bit awkward at first sight. If you take the time to check it out, you will find that the last field of NERO_WRITE_CD strcuture is actually a one-sized array of NERO_AUDIO_TRACK. This actually means that NERO_WRITE_CD already provides us with one NERO_AUDIO_TRACK structure, so we need only allocate one less than our real requirement. The fact that there may be zero tracks, translates into a crippled NERO_WRITE_CD structure, but as there are NO tracks, NeroAPI will NEVER try to interpret nwcdTracks field.
If you remove -1, you will always allocate exactly one NERO_AUDIO_TRACK more than you need to.