Nim code (even stdlib) contains some code which has some debugging options enabled with check like when defined(release) or when not defined(release). I think that "danger" define should also imply "release", is that correct?
Because for example https://github.com/nim-lang/Nim/blob/devel/lib/pure/asyncfutures.nim#L26 checks for release, so with "danger" that code will still be there (I actually checked and it is indeed compiled with -d:danger since it doesn't define release now)