You don't sponsor people or projects to complete specific issues or build specific features in the first place. Sponsorship is a reward and token of appreciation for doing good work.
Some don't mind doing the overall reward and appreciation thing. And some just have that particular issue that they want handled so the project works - better - for them. Both cases are valid.
I'm not sure how that's related to your initial question of "How do you ensure that funds ear-marked for a donor-specified issue goes toward that issue and not something else?"
The point is to get something funded. That's the goal. And negotiation doesn't scale. You can bet that nobody will negotiate contracts with 20 maintainers if they want particular features/fixes for 20 different projects that they're using. Otherwise it would be a thing today.
But instead we have these attempts and stopgaps, some of which have had some success here and there. This is something else in that pool making it easier to fund stuff, and if it gains traction than we'll know that it's serving its purpose. I think it has good potential.
You hit up the maintainer and negotiate a deal for that?
If all you’ve got is relative pocket change they probably aren’t going to agree but if you put real money behind it and it doesn’t go against their vision of the project then most people would be willing to accept actual contracting work to expand their project.