Yes, in my experience, solving a problem / feature well involves three steps:
1. Get the code to work 2. Clean up the code 3. Simplify the code
1 is self explanatory. 2 involves removing any logical redundancy, separating and cleaning the logic into methods, etc. 3 involves simplifying logic and logical mechanisms.
Most developers only do step 1 and maybe step 2. Step 3 is where beauty comes in.
If I could organize my thoughts around this concept, it would probably make a pretty good article. I don't know who the source is but a good quote goes something like this, "real genius isn't solving the complex, it's solving the complex in a simple way."