There are multiple different ways that are possible, so many of the things you listed have been used, in addition to others.
Your first question is, how did they do this.
Specifically, the Microsoft Sidewinder Force Feedback Pro you are asking about, simply uses the game port's MIDI serial interface for data transmission. While the original IBM game port did not have a MIDI interface and it was added by Creative for the first Sound Blaster card by replacing extra 5V and ground pins with MIDI transmit and receive pins, it became very common and it is generally available on game ports that are on sound cards or motherboards with integrated sound card, but not available on separate Multi I/O cards or motherboards without sound card hardware.
The other part about your question about the calibration is that the joystick detects the stick position with optical encoders, and the onboard MCU that handles the communications anyway needs to keep track of the optical encoder movement pulses, to provide the stick position digitally via MIDI serial interface, and since it likely offers standard analog joystick compatibility, it needs to have a DAC of some sorts to emulate a changing resistance to behave like a standard joystick with analog potentiometers. The optical encoders are likely incremental encoders, so they don't know the absolute stick position, so the joystick may just assume that when you power it up, it is in the center position, and then the MCU can track the changes to the stick position.
In general, there are many ways to extend the game interface.
The standard interface has only 4 digital inputs and only 4 analog inputs for measuring potentiometer resistance, and was mainly intended for maybe two joysticks with two buttons, or four paddles with one button. It technically has only input and can't be used for output, but there's a neat trick that can be utilized for output as well.
First way of extending the standard interface was to add digital buttons that were connected to more than one digital button input simultaneously, by simply adding diodes. This meant that the button input should not be decoded only as one button per input bit, but as a single code of 4 bits for 16 different states, one of them being nothing pressed, so that leaves 15 active states. This was used by some products to add more buttons and the POV hat (CH FlightStick). The downside was, that you could not press more than 1 of these buttons at any one given time, or it simply decoded to another function. The positivide side was, that you can have more buttons, and still have two analog channels left for e.g. throttle handle and rudder pedals, so good enough for e.g. slow paced flight sims.
Some other joysticks extended the standard features differently, for example, Logitech Wingman Extreme had 4 standard buttons, and the digital POV hat was connected to one analog channel via resistor network so it can be read as analog value. It did not use the fourth analog channel, it could have been used for throttle.
There is yet another way to extend the standard game port features, using a digital protocol of transferring data packets over the 4-bit digital button interface. Many different vendors had their own specific protocol, but the general idea is the same, make the gaming controller to go into mode where it can send digital data packets which the PC can read and decode into axis and button values.
As I mentioned earlier, the game port only has analog and digital inputs, but the analog axis input is basically a potentiometer with resistance, and the resistance is measured by charging a known capacitor through the resistance, and measuring how long a time it took for the capacitor voltage to reach a certain threshold. The analog input is usually done with discrete NE558, which is basically a quad NE555 in one package, or similar functionality may be integrated into sound card chipset, which may offer some hardware features to tune the process or accelerate it by having a hardware counter for measuring the time. So, when the software triggers the hardware to measure resistance, the capacitor voltage rises as it is charged by the resistance in the joystick. The shark-fin like voltage charging waveform can be detected by circuitry in the joystick to get a trigger pulse to know when the resistance measurement is being performed. This is used by the joysticks that use digital protocol to only send the digital packet when the software triggers the analog channel reading, and also the digital joysticks are not in digital mode unless a specially timed sequence of timing pulses are detected by the joystick.
One example of this kind of joystick is the Logitech Winman Extreme Digital. Since it has an MCU inside it, it can work in three modes. By default it emulates the standard non-digital Wingman Extreme which has 4 buttons, digital POV hat on 3rd analog channel and no throttle. The extra buttons can be used to configure it in CH mode, where the 6 buttons and POV hat data is sent over via the button interface, and the throttle is now sent on 3rd analog channel. With the special handshake sequence sent from the PC, the MCU goes into digital mode, where all the 6 buttons, POV hat, and throttle data are sent as digital data packets over the button interface to fully use the features of the joystick.
The next extension is then the MIDI sigals on the game port. The game port MIDI interface is an UART running at bit rate of 31250, and it uses standard TTL logic levels. It does not use RS-232 physical interface, and it does not use MIDI physical interface, as you always need a special MIDI interface cable with electronics to convert it to MIDI physical interface, which is an opto-isolated current loop. So basically, the MCU in the joystick can simply be directly connected to the MIDI UART pins and it can transfer any bytes at any protocol it wishes, as it does not have to use MIDI protocol, but the features can be implemented as MIDI messages, to allow the drivers or games to simply open a MIDI port and send standard MIDI events to control the force feedback.
Some joysticks use other ports in combination to achieve the features they need. Some joysticks have additional connections to standard RS-232 serial ports or keyboard/mouse ports for getting their communications done.