There's a lot of different ideas about how much is too much in terms of up-front design, but to me this goes a little too far to be called anything but chaos with a chance happy ending.
In the enterprise world this is really difficult because managers hate seeing those hours produce seemingly nothing, when in fact the product that follows will inevitably be orders of magnitude better in all respects than the throw-away that preceded it. Personally, the single biggest payoff I've gained from this approach is a cleaner architecture that cleanly separates concerns, allowing individual components to be refined even further.
If the code was written just to fill some holes in the original prototype, basically replacing some hard-coded strings, the developer would have less liberty on how to code lending to something less efficient and less elegant.