As a client of OIIO, you're not supposed to know or care about the file format, and whether it uses IIM, XMP, or something else entirely.  So, on the app side of OIIO, you deal with "IPTC:foo" (*) as a named attribute, and multi-value attributes are semi-colon-separated lists.  Hidden from the app, OIIO will translate these from and to the appropriate IIM numeric tags, or into the proper XMP namespace attributes (including re-separating things into lists, etc.).

(*) There are certain attributes that OIIO gives standard, non-namespaced, named to -- "ImageDescription", "Keywords", "Artist", "DateTime".  Those should be addressed by the standard names, without a "IPTC:" prefix.  But there aren't many of these, so they are easily enumerated and handled individually by an app that truly needs to be aware of IPTC data.