As does having a machine-level visual debugger for at least one of those architectures. Being able to switch to the CPU pane and see how C-function call and return were handled at the register level in Borland's Turbo Debugger was profoundly enlightening for both my C and assembly coding.