Program flow

In the code below my brain wants the flow to be thus;

initiate variables >>
void set up >>
void RPMpulse >>
void calc >>

void loop<< continuously loops and never goes back to the void RPMpulse or void calc

The compiler, of course, has other ideas. The actual code that is generated from your sketch has a main function that calls init(), setup(), and loop(), in an endless loop. It may also call a serial event function, if you have defined one, and there is serial data to deal with, after each call to loop().

The rpm and calc functions in your code are called because you have registered the functions to be called when an external event occurs, using the attachInterrupt() function. That is the only reason that they get called at all.