I loved how you mention "tedious"... I was expecting you bitching about probably one of the most confusing parts of Doctrine! =D 
Criteria only got created recently, that's why it's not used from end to end. We should work towards deprecate array usage in favor of Criteria whenever possible.
It's unexpected to have anyone use Persisters outside of Doctrine. This API is not meant to be exposed and any possible directly usage is just plain wrong and not planned. The purpose of having ``UnitOfWork#getEntityPersister()`` as a public API was purely done to address access inside of Hydrators. We should blame PHP for not having public/protected/private classes support, which would address this issue.
Anyway, access to Persisters by end-users is wrong and none should do it. If there're developers accessing, they're doing at their own risk.