Why would the implementers choose to make
into a list as opposed to a ordered set?
as a list gives rise to the possibility of having multiple duplicates in the path, slowing down the search time for modules.
An artificial example would be the following silly example
# instant importing
for i in xrange(50000):
# importing takes a while to fail
To summarise from the comments and answers given:
It seems from the responses below that a list is a simple structure which handles 99% of everyone's needs, it does not come with a safety feature of avoiding duplicates however it does come with a primitive prioritisation which is the index of the element in the list where you can easily set the highest priority by prepending or lowest priority by appending.
Adding a richer prioritisation i.e. insert before this element would be rarely used as the interface to this would be too much effort for a simple task. As the accepted answer states, there is no practical need for anything more advanced covering these extra use cases as historically people are used to this.