I would have used our inline wrappers even internally -- like using our hasKey instead of their m_value.HasMember just to reduce the number of change points in any future library swap.  I'd even have added private wrappers around at least the primitives that we reference in several methods like m_value[key] and m_value.IsNull().