Do the goto statements translate directly into machine code which
tells the computer just to JUMP to a different memory address?
Pretty much.
Is this a lower cost in the machine to jump around like this when
compared with the cost to call a function?
A function call is going to make a pretty similar jump, but before you can make the jump, you have to set up the new stack frame for the new function, push on parameters according to calling conventions, and at the end set up any return value and unwind. Yes, it's probably faster to not do this.
I am slightly insane
Yes.