It's a tough problem, unfortunately. The developers of LuaTeX decided to remove several primitives favoring a syntax
\pdffeedback <keyword>
Some of the removed primitives were expandable:
\pdftexrevision
\pdfxformname
\pdfcreationdate
\pdffontname
\pdffontobjnum
\pdffontsize
\pdfpageref
\pdfcolorstackinit
which means that one expansion step was sufficient for them to deliver their expansion. Note that one expansion step is sufficient also now provided
\pdffeedback creationdate
is used. The luatex85 package provides the old names around the new syntax, doing
\def\pdfcreationdate{\pdffeedback creationdate}
but this means that two expansion steps are needed and this is where datetime2 fails because it does
\expandafter\@dtm@parsepdfdatetime\pdfcreationdate\@dtm@endparsepdfdatetime
The workaround you use is good, in the particular case, because \pdfcreationdate in pdftex is “fixed” and doesn't change once set. So luatex85 might indeed do \edef\pdfcreationdate{\pdffeedback creationdate}. However this wouldn't work with other old primitives such as \pdffontsize, because this requires an argument (a font specifier).
The packages using those primitives should be updated to do two expansion steps or branch their code. For datetime2 the code
\expandafter\expandafter\expandafter\@dtm@parsepdfdatetime\pdfcreationdate\@dtm@endparsepdfdatetime
would work with legacy pdftex or LuaTeX 0.85 or later. In the case of pdftex or older LuaTeX, the second expansion step would try expanding D, so do nothing. In case of LuaTeX 0.85 or later (with luatex85 loaded) the double expansion would deliver the expected string.
More safely:
\ifdefined\pdffeedback
\expandafter\@dtm@parsepdfdatetime
\pdffeedback creationdate \@dtm@endparsepdfdatetime
\else
\expandafter\@dtm@parsepdfdatetime
\pdfcreationdate\@dtm@endparsepdfdatetime
\fi
However, another branching is needed in another part of datetime2 to make it independent of luatex85, where a check about the existence of \pdfcreationdate is performed.