on difficulty of password you missed my point but that's ok.
In short, what you are saying is the vulnerability is centered on the ability to guess a lot of combinations quickly, and using a dictionary to create a high probability match.. ie brute force is easier. It's fine to point that out and *that* argument makes sense.
but saying that using "@" or "$" in my password makes it more secure vs a more sophisticated attack is completely wrong. The possibility that it can be used does. The fact that a "shorter" password could be guessed first is purely a function of how you run the brute force attack.
But you aren't going to convince me that you have a better chance of guessing my password if I don't use those characters or combinations of small and uppercase letters as long as that option exists. You will convince that if I use words or commonly used passwords (like the infamous 2qt4u) you have a better shot at getting it.
But if I string 20 random lower case letters together, I wish you luck brute forcing that.
"
http://calc.opensecurityresearch.com/"
assuming you have n choices and k length, the combinations is n^k.
Your strategy is to increase n. I will tell you increasing k is way more effective.
passwords are useless if you can't remember them or have to write them down btw.
The bigger and more serious potential vulnerability is getting the key and at least partially breaking it (for lack of a better way of putting that)..