The difference is that "cursor: pointer" means (by default) that the target will initiate navigation away from the current page. All other elements follow OS conventions as a matter of presenting a common UI grammar to the user.
It irritates me when people learn a concept and then illogically apply it to other domains. That's why I'm making a fuss, it seems like everybody is not using their brains and saying "EVERYTHING you click must use the hand because links do!".