I've got to think about this.  For Netflix, our Base AMIs will have Chef pre-installed (from specific packaged versions) and we wouldn't need to do this step.  However, I could see this being useful for community users as this gives an easy way to bootstrap any public AMI with Chef+Recipes.  

I had also thought about tackling the Chef provisioner with a different (but not mutually exclusive route) where the Chef recipes are packaged in a native package and the post script would trigger the chef run.  This would solve the payload issue that you address using the tarball (I did the same in my foundation building wiki doc :)