The idea of prototyping is to get a quick and dirty working version of your idea and then to dispose the prototype in order to create a solid architecture for your final product.
It is important to acknowledge that a Prototype is not meant to be (and should never be) refactored into a product, so it is not necessary to write it in the same language you want to write your final game. It's better to choose a programming language that allows for fast development, like Flash as you mentioned.
Prototypes by their nature are not designed to be long lasting code. Prototypes are designed to be thrown away. They're one-offs. It is inappropriate to over-engineer a prototype. A prototype is like a town in a western movie. It's all facade. There's nothing behind it. You cannot move in and raise a family in one of those houses.
If you want to build something that you may want to further use, this is not a Prototype but rather a Tracer Bullet as Andy Hunt and Dave Thomas call it in the book The Pragmatic Programmer.