I am not sure how import works… When you have something in a Unity JS script that calls import System.Xml;, does it load a separate import per script, or is it now imported for all other scripts? It seems you have to put import System.Xml; on top of each script that requires it…
From that perspective, would it make more sense (efficiency wise) to aggregate all code that needs xml parsing to just one script, instead of having to call import System.Xml; each time in different scripts?
Import is the same as "using" in C#, so you can refer to this article for an explanation of what it does. :) To answer your question briefly as well, Import is limited to the file you've put it in only, so you do have to import whatever you're using in each file. Note however, that imports do not actually load a bunch of code to "make it available" for you. That's the wrong way to think about it, and import doesn't incur any kind of redundancy overhead. It simply removes the need to explicitly traverse a namespace-structure every time you refer to something.
If, for instance, you have a file that's heavy on streamreading data to and from the harddrive, then chances are you'll be declaring and referencing various types of StreamReaders and StreamWriters. Instead of having to write System.IO.StreamReader strrd = new System.IO.StreamReader every time you want a new StreamReader, you put "import System.IO" to allow yourself to skip writing that. That's all it does. It just tells the system to treat an encounter of "StreamReader" as a member of System.IO in that file, since you stated once and for all that you're going to be using that namespace.