Clark did wear glasses briefly for one episode a couple of seasons ago. Fans went nutso for it even though it was common knowledge that it wasn't a long term thing.
Superman: Birthright handled it interestingly having Clark spend time outside of the US to really experience the need for his power and upon returning Ma Kent mentioned that its the deep blue in his eyes that makes it memorable. He puts on the glasses with lenses that are tinted a bit to really draw attention away from them, then changes his stature, his mannerisms, even his way of speaking developing a "studder" that doesn't actually exist.
The thing about Superman is that he hides in plain sight. His persona as Clark is so believable that those who make the connection immediately second guess themselves and dismiss it. When you look at Clark slumped over with thick coke bottle glasses, messy hair and a studder, then look at Superman who is standing upright, tall, with a powerful and commanding voice, hair slicked back and deep blue eyes....people almost say Clark kind of looks like a dorky version of Superman nothing more.
Reeve did this perfectly in the 1970s Superman film and something along those lines could easily work in Smallville but they'd have to separate Clark from Lois, Jimmy and anyone who he'd come in contact with regularly to create that new persona and have it stick. The only reason Clark would have needed glasses in Smallville is if he were Superboy which here he isn't but they made an additional issue with introducing Metropolis folks into the stream. One argues what about pictures and such, the modern comic mythos has stated that Clark himself is picture along side articles and such that people just assume that Clark naturally turned into the persona he wanted. Its a psychological thing with Superman more than anything, having you doubt yourself and the ability to connect the dots is more the game than having to hide out. That is why when people actually find out they are one and the same its such a shock because they feel foolish for not making the connection before.