At least with ridehailing apps you have a feedback mechanism to flag these drivers. If enough people have negative experiences, they won't be able to drive for that platform.
I don't use that feature unless the infraction is very major (like the guy who swerved into incoming traffic while texting). The reason being is I don't want to look like I'm complaining for the sake of complaining or trying to get free rides/Uber credit.
It's important to rate poor drivers with low scores because a) you won't be matched with them again and b) you're potentially helping remove them as a driver to the benefit of other riders.
If they want to give you credits as well, so be it.