Ok, I am pretty new to R so this was an interesting exercise in trying to figure out the data types. It turns out that the code actually does work the way I described, just not for the reason I thought. When running c with the arguments in that order, it will produce a list that has the repeated values multiple times, but when accessing that element using database.info[[''type']], only the correct element is returned. This looks a bit strange in the code I guess, but it does work. If we want to eliminate the duplicated attributes we can add this:

database.info <- database.info[!duplicated(names(database.info))]