Pledge was not praised across the board for precisely the reasons you mention. It's optional so no one aiming for portability will implement it, it's not user configurable, permissions are too broad, it's unusable by any application that isn't pledge-aware, etc..
Now SELinux isn't perfect by any meaning, but the key difference is that applications can be SELinux aware if they choose, but you can still have full protection without the application knowing that it exists.
I would much rather try to improve SELinux than try to make pledge work for precisely this reason.