The following rules apply though:
A symbol needs to have a unique name over all symbol libraries. If you have two symbols with the same name in the same library, kicad will complain. If you have two symbols with the same name in different libs, kicad will use the one from the lib with the highest priority. (The priority is determined from the position of the library in the component lib dialog. See screenshot.)
Something similar applies to symbol library names and directories in the search path. If you have multiple symbol libs with the same name (In different directories of course) kicad will take the one from the searchpath with the higher priority. I think the priority is again determined by the position of the search path in the component lib dialog. (I noticed that the search directory i added has a higher priority then the system directories.)
Footprints (kicad_mod files) only need to have a unique name within their respective lib. (You can not have multiple files with the same name in the same .pretty directory.)
I have not tested if you can have multiple footprint libs (.pretty directories) within different search paths that have the same name.
I assume they only need a unique nickname. (again: i have not tested this.)