For ITX, there really is no functional difference. The X?70 adds extra USB and SATA ports, but there really isn't anywhere to place them on an ITX board. It also allows for PCI bifurcation, but if you're at SFF level anyway, you mostly likely aren't going to be running two GPUs in a tiny case (space, heat, and power supply are all reasons).
This review shows the charts:
https://www.kitguru.net/tech-news/l...ipset-preview-x470-features-at-a-lower-price/
You can still have 4 SATA ports with Bx50 because the SATA Express portion can be repurposed to compensate for that.
So for us, the B?50 chipset just makes sense to save money. Then you have to look at any differences from the manufacturer side. For ASUS, the boards are literally identical except for the chipset. For ASRock, the only difference is that on the X470 they use a top end intel wifi/BT card for 1733 Mbps./BT 5.0 versus a much lower level one on the B450 (433 Mbps/BT 4.2). That higher end card can be purchased for less than $30 usually -- but then you'd have to install it. So, for ASRock it becomes more of a choice.
Now, 4xx versus 3xx -- that's another question altogether. They did add some new features like StoreMI, XFR2, and PBO2. So if those are important, then you'd want a 4xx series board. If you're are just going to ever run an APU, then it also doesn't matter as much. The only sticky point is that most people have been saying that memory compatibility has been increased with the 4xxx series boards.
So, generally speaking, unless there is a huge price difference and you have a matching use case, the B450 is really the sweet spot for SFF AM4.
For ATX (and maybe mATX), then there are going to be more differences between the boards with number of USB/SATA ports and maybe even component quality. Then it becomes a little more of a decision about X vs. B chipsets.