"Fan-out" and "fan-in" mostly remain the terms of 1980's and TTL.
MCU IO is CMOS: in output mode, it is a fairly low-resistance switch to GND or VCC. In input mode, it's almost ideal "voltage meter" rounding the input value to GND or VCC; almost no leakage resistance; a tiny tiny bit of capacitance, like a scope probe.
Thus, the output can drive hundreds of inputs quite easily. If interested about doing it more properly, sum up the IO pin capacitances as given in the datasheet (or approximate as 10pF per pin). Assuming 50 ohms of source impedance (basically the Rds_on of the MOSFETs in the output port, varies with part and temperature around 10 - 50 ohms), you can then calculate the RC time constant, which will limit your UART baudrate.
If good signal integrity is important and lines are long, then you would buffer them separately and add a source termination (series) resistor right after each buffer, before the line.
Within a PCB and traces of few inches, this does not matter, just route the UART to the (few) devices.
Going into a connector, especially user-accessible, might prompt for some extra consideration for EMC, ESD and source termination to prevent overshoot and ringing. Even then you may not need a buffer, I just passed all EMC qualifications on first go with a simple design using RC filtering plus TVS diodes on microcontroller IO directly. Zapping the inputs with 8kV of ESD was no problem and passed immunity tests by A criteria (valid inputs) even though self-recovering failures were allowed.
If you decide to use a buffer, don't use an opamp, use a digital logic buffer like something from 74HC series (or 74HCT if you want to convert levels from 3.3V to 5V). But I don't recommend the weird practice of adding random buffers and transistors "just because". Whenever the IO of the MCU is fine as is, then just enjoy the simplicity of design.