List is an advanced type and may not be available to all the programming paradigms. Array, in comparision is perhaps available in all the programming paradigm. hence by default the translation will fall to array for a proxy wsdl
Now in this case, If you are sure that your client is .Net, you can change the client to use List. Since the service does not know what client's programming language is, the current design of svcutil where client decides whether it uses list or array is correct. If you make this setting available in service, you are ruling out clients which does not have the concept of List
Coming to your second question, as long as your operation contract names are different, you will be able to use the array and list distictly in the same service. Also note, OOP concepts are restricted in SOA, which means you can't have polymorphic methods.
the following question has more details about OOP and SOA