I am designing a board which can be powered over USB and includes the use of a LiPo battery along with its charger circuit. When the USB is connected, it charges the battery as well as powers the microcontroller. When the USB is unplugged, the microcontroller is powered by the battery.
I was studying the Adafruit Feather boards as they incorporate this feature into their designs. They have implemented this in a couple different ways. The Feather 328P had a MOSFET and a diode such that when VBUS was present, it will override VBAT via the diode and when it wasn't power from the battery would flow through the MOSFET body diode:
They both perform the same function but in seemingly different ways. What is the difference in the two implementations and what are the considerations for choosing one over the other?