They have to have some level of secrecy because in this day and age, everything gets leaked on the internet. For WP to take off they need to stay in the public eye. They trickle out information so they always have something new and exciting to talk about. In the past, everything was known so early that the release was a non-event because there was nothing new. As we could see from the iPhone 5 launch, everything was already known and the release was pretty yawn inducing.
Since it is so common these days to copy everyone else's features they need the secrecy to hold onto any unique features as long as possible. They need to have some competitive advantage to get people to switch and the longer they can hold onto that the better.
Most apps will not have to change code much to move over to WP8. The only big difference is going to be for game developers using native code. My guess is that most of the SDK acceptance letters are going to game developers.
Honestly I find all of the secrecy to be exciting. You never know what they are going to announce next. It is refreshing to see that coming out of Microsoft because in the past there was no reason to get excited about anything they put out. It was all an open book. So all they need to do now is to have another big announcement after the iPhone release to get back into the spotlight.