The answer to the first question is: No! and it seems to make no sense, what I see (and no use) is the contrary, to venv be in a directory inside your project.
Yes, No pycharm vc need to tell which venv your project will work with, cofigure in File/Settings/project interpreter.
The answer to the third question is: Not necessarily! The concept of virtual env á for the developer, so that he can have several development environments in his workstation, in this way one can develop projects in python 2, python 3, etc, just to "commute" the environments.
On the machine that will run the project you need to have all the packages required by it, whether or not in a virtual env. For this use a requirement file, commonly called Reskirts.txt
To start managing virtual environments in python, consider using anaconda. See, here at Stopt, that answer, and open this door with a golden key. :-)