Sorry for the nomenclature, but our ASSERT always runs, DASSERT only runs in debug mode.

Do you really want DASSERT here?  If you truly want to check every time, even for optimized builds, then perhaps instead of ASSERTing (i.e., crashing the app), you should call dst.error() and return false.