I believe this is why it's specific to IList. There was an existing logic branch that my patch modified that operated specifically on IList collections. Changing this to IEnumerable would widen the scope of my patch. Following the logic branching in this section of code, IEnumerable or ICollection would fall down to the "else" statement beneath the one I modified and be handled by the Map() function which on first glance, looks like it handles the SerializeAs attribute properly.