$wgArticleRobotPolicies allows site owners to set robot policies on a per-article basis. INDEX and NOINDEX allow random users to do the same. The owner's setting should win out here -- current INDEX__/NOINDEX__ do, because of the order the code is executed. The config setting is executed in Article::view() -- in the same place as the namespace setting, which the magic words *should* override, since they're more specific (page-specific). The magic words are handled in OutputPage::addParserOutputNoText(), which is lower-level and is run later.
I guess the best way to handle this would be to make OutputPage have a hierarchy of robot policies, so that Article could register a higher-priority robots setting that would override any later low-priority settings. But that seems awfully inelegant for such a minor detail.