You are correct. The Germans got a rude awakening when the first US Marines appeared in the trenches of WW1, as they had been trained in long range marksmanship. Maintaining that level of marksmanship during wartime was just not possible. However, there are other issues. A lot of old military rifles were designed in the late 1800s and early 1900s. Prior to WW1 there was still a sense that massed infantry formations would be fighting against massed infantry formations at long range. So a lot of these guns have what are referred to as "volley sights." The theory was that the officer would determine the range, tell the soldiers to set their sights, and then have them blast away at the target -- which was supposed to be some kind of blob of enemy infantry, and not individual targets. My 1891 Carcano has an adjustable sight up to 2000 meters! WW1 demonstrated that those tactics didn't make any sense . . .
I think your first question has been pretty well answered already: guns were cheap and effective, soldiers were easily trained how to use them.
I believe that firearms were the primary reason armor went out of fashion, but there were other factors that were changing as well. More troops were being employed. Armor cost more and weighed them down. Also it's effectiveness was diminished with the increased use of firearms (and field artillery as Galloglaich will point out). Armor wasn't totally useless, but you had to spend more money on it.
Finally, armor never disappeared entirely. Cuirassiers were still wearing armor in the French Army in 1914. And armor also survived for the use by sappers as "siege armor," well into the 19th century. Armor made a kind of resurgence in WW1, often times for sentries, but sometimes as an attempt to crack the stalemate of trench warfare. The only piece of armor generally readopted though was the helmet -- trench warfare led to a lot of head wounds. Likewise armor made another resurgence in the form of tanks and even armored ground attack aircraft (yes they had those in WW1).