Why Do WP Updates Go Through Carriers?

So, we all know why Android updates go via the carriers/OEMs, because Android is open source they all have their own skins, tweaks and crapware to put on the devices and to ensure remains with each update, so they updates can't come straight from Google. This means updates take as long as carriers and OEMs take, this is most often tremendously slow, hence the current ICS numbers despite it being 6 months old.

On the flipside, Apple have complete control and all updates go via them, the carriers have nothing to do with software versions. This means updates are very prompt, i.e. as soon as Apple release them.

In between is Windows Phone, Mango was pretty quick with it uptake because MS worked with the OEMs and carriers before release, but why do they need to go through carriers at all?

I was listening to the mobile podcast (not one fo the more recent ones) and they were talking about many Windows phone devices not having visual voicemail yet because they were waiting for the newest firmware version from the carriers. But why do they ned to go through the carriers to push minor firmware updates? If Apple can avoid it why can't Microsoft? it's not like they have carrier skins or bloatware to deal with....