Keith,
Thanks for the heads-up about dealing with a new unsaved document. As it turns out, it IS an issue and I probably wouldn't have caught it until much later in testing.
I am streaming some data into the MXD in an overridden OnSave method in an Add-In Extension. It is some extended setup information for an Add-In that includes path information which must be re-written to use relative paths before saving in the MXD (and expanded to absolute after being read). That's why I need the path to the MXD.
IDocumentInfo2.Folder was working fine in my initial tests. However, when saving a new unsaved document, the Folder property is null (and the Path property is empty) -- even though OnSave occurs after the file save dialog. I suspect the properties are set AFTER the save completes.
Fortunately, The templates method of getting the path does work correctly in the first OnSave of a new document. So that's what I will be using.