This is a problem with the new code to generate archives without parsing the ECL.
If a -D option has been used, it currently hashes the values when checking the cache is valid. Unfortunately it doesn't seem to include the -D values if it is generating the archive from the cache.
This means that the first time an archive is generated it works correctly (since it parses the ECL). Second and subsequent calls with the same -D options will not generate the -D values in the archive.
Fix is either to disable quick generation if -D is used on the command line, or to include the -Doptions in the archive.