It seems to me that having separate debug and release configurations is of little to no value. Generally, because of size restrictions, you need to use the same optimization options for both. Also, debug symbols are normally stripped from the code actually programmed onto the target (loaded separately from e.g. elf file when in-circuit debugging).
For firmware, what are you guys' preferred setup and why?
build and debug configurations
even more configurations?