RootData is the special area in the storage which can be used for application-defined purposes. This special area is not visible to the user (it is not a directory entry and it can't be found using FindFirst() method). RootData doesn't have tags, attributes or alternate streams.
RootData is not encrypted when you use whole-storage encryption. This was done to let the application store encryption-related information such as encrypted session keys, certificates, Access Control Lists etc. for use with whole-storage encryption.
RootData keeps exactly one stream of information. If you need to store structured information, you can use various data persistence libraries to store information in XML or INI-like format in one stream. You can even use another storage and keep it in RootData using callback mode for the inner storage.
An alternative to RootData is using callback mode to write the storage to the underlying media and store the supplementary information in the same file on this media (before the pages of the storage).