The gesture navigation is similar to what iOS does (not the same), and the 3-button navigation is basically the old version of the Android navigation.
This article could help you understand where Android stands today https://www.makeuseof.com/three-button-navigation-vs-gesture...
I'm a Flutter developer working on iOS and Android apps, my 2cts is that the Android back button experience is more predictable (both with the gesture navigation and with the 3-button navigation): on iOS, the back swipe doesn't always work and sometimes I need to track down where the on-screen back button or back icon is. On ios, sometimes instead of swiping horizontally, I need to drag the panel down, and even though it's easy to figure out based on the screen which one will work, it's one more way of doing things, whereas on Android, I can just hit the back button in most scenarios.
Edit: since having the above whinge I've found the option to turn down the sensitivity. I'll see if that makes me a bit less 'old man shouts at cloud'.
I do think that this comes from the code base not being very good. The base layout and view classes have hundreds of thousand lines of codes, the layout algorithm is quadratic to the number of views. It was originally designed for digital cameras, not for phones. The base classes use many bit fields as well instead of enums, they don't look like Java.
Plus the strange back button concept which comes from the camera.
All this means developers waste a lot of time wrestling the framework.