...it's just completely random which functions need FreeMediaType and which need DeleteMediaType, isn't it? At least it's documented.
The difference is that DeleteMediaType() also frees the AM_MEDIA_TYPE pointer. And yes, it's rather inconsistent, but at least it's documented (and usually predictable from the signature anyway).