It's all about picking the right tool for the job.
For the top switch, you could use a bipolar transistor (BJT), PMOSFET, NMOSFET, GeNFET, IGBT, etc. Parameters to consider are:
- Conduction losses, ie current multiplied by voltage across the device while it is conducting. Since current is fixed by the design, it's all about voltage. For a BJT it will depend on VceSSat ; for a MOSFET it's about RdsON.
- Switching losses, which depend on switching speed, ie gate to drain/source capacitance and stored charge for BJTs
- Driving losses, ie how much base/gate current it needs
- Drive voltage in some cases: for example if you want to boost the voltage from one single AA battery, you can't use a FET which needs several volts Vgs to turn on ; you need a very low threshold voltage FET or a low VceSAT BJT.
- Simplicity and requirements of the driving circuit, especially regarding PMOS vs NMOS. For example a high side NMOS switch requires a bootstrap cap, or a charge pump if you want it to stay on continuously ; a PMOS does not but it will have worse efficiency.
- Cost, of course. Note that cost is not just the cost of the component. A more expensive component that offers better efficiency may end up being cheaper by not requiring a heat sink, for example. Thermal management is expensive.
For a MOSFET of a specific voltage, the figure of merit is RdsONQg. Qg is gate charge, how much charge you have to put into the gate to make it switch, and RdsON is the FET resistance when it's conducting. You want low RdsON for low conduction losses, but that means a larger silicon chip (more area), which means more capacitance, which means higher Qg, slower switching and higher gate drive current. This depends on FET construction and each generation of FET tends to be better designed than the previous one, so you get a better RdsONQg product. There are other compromises. Higher voltage FETs will have worse RdsON. Ultra low gate threshold voltage means thinner oxide so the maximum allowed gate voltage is lower, making the FET more fragile.
A few decades ago MOSFETs weren't as good as they are now, so the switching device would often be a BJT.
Then low-medium voltage FETs (say up to 40V) evolved, Qg and RdsON went down, so BJTs began to be replaced because FETs offered a better compromise.
It took longer for FETs to get better at higher voltage, so BJTs were still the choice for mains-powered switching supplies, but now they are being replaced by FETs too. At even higher voltages, there's a competition between IGBTs, FETs and SiC FETs.
Likewise low input voltage converters require low gate threshold FETs, which took longer to come to market, so BJTs stayed in use there for a while.
Modern FETs just switch much faster than BJTs, require less gate drive, and have lower conduction losses, so for BJTs it's pretty much over in the switching converter game.
So the answer is: use the part that provides the best compromise for relevant parameters. As technology evolves and new components are developed, the optimum choice may change.
As far as the diode is concerned, in a switching converter its recovery time is important because that determines how long it needs to turn off. So you need a diode with low recovery time and low recovery charge. Schottky diodes are the fastest, plus they have lower voltage drop, but they tend to have higher leakage current and their performance gets worse at higher reverse voltage. Replacing the diode with a FET gives much lower voltage drop, so lower conduction losses, but it adds complexity as the FET needs to be driven, so you have another compromise.
The best choice depends on how much losses you actually have in the diode. If you make a buck converter that converts 12V to 1V to power a CPU, its duty cycle will be very low so the diode would conduct 92% of the time, plus the diode's forward voltage is 60% of the output voltage, which means the diode losses will be about 50% of output power. So replacing the diode with a FET really increases efficiency. However if you make a buck converter from 24V to drive a 20V LED string, then duty cycle will be low and the diode's drop is only 3% of the output voltage, so replacing the diode with a FET would only gain a few % efficiency. Probably not worth the extra cost.