Well I came across a lot of legacy code that uses IList<> in the function signatures but inside works with List<>.
Now only List<> and arrays (int[] implements IList<>) implement IList<>. ArrayList implements the non generic IList and since generics were introduced there is no point in using boxable/unboxable collections.
List<> down is still has an array implementation. I do not think is there a point in using arrays in C# anymore. LinkedList<> does not implements IList<>
And if I think back to the C++ STL containers/collections they did not had interfaces too. From design perspective there was no issue in what to use or make it interchangeable. Or you used an iterator, if you wanted interchangeable, here in C# you can use IEnumerable<> if you want and can be flexible and lazy.
I see no reason to change it to an array and I do not think I can write a better collection class than List<>.
Now out of pragmatism how bad would it be if I would replace all the IList<> with List<>?