As a user, I'd certainly prefer for apps that I download to use the built in system functionality (like C2DM). One of the advantages of C2DM is a standard listener that used by all apps, rather than have multiple listeners (each potentially causing battery life impact). If the C2DM API is hard to use, it makes a hell of a lot more sense to write a helper wrapper around it, rather than add another listener.