If you're just churning out cookie cutter patterns you need to get a new job or side project and rediscover the magic.
When you are learning, yes, probably it is different, but you reach a point when you see programming most things as a chore. There is no magic or unlimited possibilities. There is a goal, and you code to get there. Can we just stop with this bull crap about we being special snowflakes? Just look at your description of software: 'smallest atom to the grandest super-structure' -- Seriously?
I agree the language comes after the object, not the other way around. And speaking the same language is important.
I'm actually an architect and it does seem a bit routine for me to hammer out design specs nowadays.
I suppose that you could leave the creativity in engineering to other people (designers, product managers, etc), but my experience has been that you end up a far better product when you engage developers early on in the brainstorming and product planning process and let them help decide what the product should be.
If you treat developers as creatives (like you do design, etc) you get a superior product and work environment, and you involve more people in the product brain trust.
"Coming up with new patterns and improving existing patterns is what we do."
Chances are you are not "coming up with new patterns" but instead re-discovering existing patterns.