The term bottleneck is used to describe as a component, or operation in a system that constrains the total output of the system. In other words, a system will only perform as fast as it's slowest part. (the bottleneck) The total systems output is limited to the thru-put of the bottleneck. To increase the throughput in any system you have to increase thru-put at the bottleneck(s). To further elaborate, once you address one bottleneck, understand that you will still have a bottleneck, it will simply be moved to another area of the system.
To sum up your second question in the simplest way I can think of, if you take a very high end graphic card, and match it will a very low end processor, the processor will never be able to drive the GPU to it's full potential.
Actually, your CPU and GPU are pretty good match.
Would a faster processor make a difference? Yes, it would make a little bit of difference. But since your graphic card is a lower end gaming card, just about anything you can do will help some.
Right now you don't really have a bottleneck, but your performance is not what you want? But, as soon as you try to upgrade either your GPU or CPU, whatever you upgrade is going to yes, leave the other component being a serious bottleneck to overall performance.
I would upgrade my processor first, then my GPU, if I was not getting the gaming performance I wanted from your setup.