As you noticed, many verbs can take an indirect object, and can also express the indirect object with to or for. But there is no rule that anything expressed with to or for must be convertible to an indirect object, and therefore "open the door" is not an exception to the rule.
There are plenty of examples of verbs that work this way:
Break a leg for me != Break me a leg.
I bought balloons for the party != I bought the party balloons.
They brought the discrepancy to the director's attention != They brought the director's attention the discrepancy.
There's nothing special about open that prevents it from taking an indirect object; if anything, the "special" verbs are the ones that do take the indirect object.