Interesting read. Is the main advantage of tag lists that their are functions for dealing with them as opposed to a normal array of key values ?
The most benefit comes when tag lists are used to pass arguments to API functions: It's easy to add new functionality or parameters to existing functions, without breaking backward compatibility. Even if a newer implementation knows about new tags it doesn't interfere with old apps calling the function and only using the older tags.