I've never understood the appeal of wanting your app to be out on day one. Developing a product against a specification that is in flux and which hasn't even been completed is unnecessarily painful, and by definition only grabs you the customers at the very bleeding edge.
If you're writing apps to target Win8.1 (and you don't work at Microsoft, or a third party company that has a good reason to have your app out on launch date), you should probably instead be writing an app to target Win8 - since that's where all of your (app) customers are going to be. When Win8.1 actually comes out, you can then update your app to take advantage of the Win8.1 features, and you'll have the actual build of Windows that your customers will be using, and in the meantime your customers can use your product before Win8.1 is launched (since you built it for Win8), and it'll be easier to decouple the Win8.1 features so that your app will work on both, since you'll be building a Win8 app with Win8.1 features bolted on later, rather than having a hard coupling to Win8.1 from the start.
Also, if your app works on Win8, it'll work on Win8.1 for free, so it's not like you're losing customers by having a Win8 app instead of a Win8.1 app on Win8.1's launch date. It's just you won't have Win8.1 features until you retro-fit them in a couple of weeks and months later.
They call it the bleeding edge for a reason. If you've got a requirement to launch your app within a week or so of Win8.1's launch, then good luck to you. But if you don't, it's just masochism and a whole world of pain to develop for a product you don't know, your customers don't have, and that you can't test against.
For the record, I don't think this is specific to Microsoft or Windows. I'd also suggest not writing starting to write apps for the iPhone 6 or 7, at least until they launch those too