I've started watching the reruns of season 9, and something happened in the premiere that I totally forgot. It was something that Jor-El said was the reason Clark couldn't fly: Clark considered himself more human than Kryptonian.
http://www.youtube.com/watch?v=JrVIbucWJx8
In the season finale, Clark chose to be teleported to another planet because it was the only way to remove the Kryptonians from Earth. Thus, he self-realized his Kryptonian while saving the world. The blue Kryptonite dagger which negates his powers exempted him from the transport. I believe Clark will fly in the season 10 premiere or within several episodes thereafter.
http://www.youtube.com/watch?v=PsbwDCPNghk