The real lesson here should be that doing crazy shit like swizzling the program counter in a signal handler and writing your own assembler is not a good idea.
I like Go but I don't really like their NIH / replace everything with our stuff stance - esp on system tools like assemblers and linkers.