References such as System, System.Core, System.Data, System.Web and other System like references have generally had their paths set to some system path in program files on your hard drive.
I have always thought that if you did not set copy local to true on these that they would not be copied to the bin directory or publish directory and when the application was placed on a server that it would use the system paths previously discussed to utilize these dlls on the server or whatever machine the application was running on. The reason I thought this is if you publish to a server without mvc on it the application will throw errors informing you of this issue, the same holds true for scenarios when a .net framework is missing from a server.
Is this correct? Your application will utilize the system path provided in your project on the server when running? How does copy local come into play? What happens if these files are referenced in the bin directory?