There are two DEBUG flags in the Simutrans project, which as slightly releated:
Within the code, DEBUG turns on verbose logging and assertions. According to the Makefile, it's either on or off, although there are a few #ifs that checks if DEBUG is greater than or equal to some value.
The other DEBUG flag is in the Makefile. If defined, it sets the first DEBUG flag in the code and adds the compiler flag for debug symbols. Higher values for DEBUG "gradually" disable optimizations.
So the big question is what makes a debug release a debug release? Is it the presence of debug symbols, the presence of verbose logging, both? The Makefile build will make it both, but the code contains clues that sometimes the DEBUG flag within the code is customized to not work as normal. But as Prissi writes, all releases are made with debug symbols and verbose logging on (though not with optimizations turned off). A true debug release in Simutrans would be one in which optimizations are also disabled, which the code won't know about, or with the verbose trace logging turned on, which the Makefile doesn't seem to support out of the box.