You make it sound so easy when it's clearly not. I've worked jobs where I was the only .net developer in a large enterprise and worked in a team where my teammate wasn't interested in growing.
It takes more than just gumsion to do what you're suggesting, what you're actually wanting to do is add more stress. Case in point, my coworker who wasn't interested in growing: I spent the better part of two months architecting out the service layers...only to have him f* it all up in a week. Refactor you say? Try refactoring code for someone elses work on top of your own.
He can try to outdo his coworkers to which he may easily become unpopular at work. Nothing adds more stress than pissing off coworkers and added more horridness to an already horrid team dynamics.
It's not easy to work in a crappy job. Your suggestions, in my opinion, sound more like wishful thinking.