Necessary to remove unused scripts from imported packages for deployment?

It looks like Unity compiles all scripts, even ones that are not referenced or used in any of the gameobjects in a scene/proj hierarchy. For example, if in an unused script, you declare a `enum GameStates`, and you declare it in a script you are using, an error like: "The namespace '' already contains a definition for 'GameStates'.

In that case, should unused scripts simply be removed from the project pane? Is there a way to put them in a folder (still accessible within the proj pane), so that they won't be compiled?

You do need to remove them. The only folder that I can think of that is not included in the final build is the editor folder, but it is probably easier just to remove them from the "Assets" folder entirely.