ns_set exists because it allows ordered access, named access and multiple values for the same key, all of these are needed when working with headers, config file structures, and sql rows.
Nice API addition, thanks Don!