Creativity is an interesting characteristic, because it means so many things. Bach was creative. So was Picasso. Da Vinci. Shakespeare. Thompson and Ritchie?
Is computer programming a creative endeavour? My instinct says yes.
Merriam-Webster defines "creative" as "having the quality of something created rather than imitated". So by definition, everything that is created is the result of a creative act. But that is an overly sterile perspective, I think. If I said the word "the", I would have created sound, but it surely wasn't creative.
Creativity, to me, means that you can create appealing things out of basic building blocks. Painters use colors, composers use notes. Everyone has access to the same colors and notes, but not everyone can create the same paintings or compositions. Moreover, the appreciation of the whole should be at least partially divorced from those basic blocks. When you look at a painting, you don't say "well, right here it's red X, but over here it's red Y". Similarly, music can be appreciated without knowing what specific notes are played, you can transpose a piece up or down as long as you maintain the relationships.
I don't claim that that's necessarily a better definition. It's certainly a more subjective one, but that's intentional. Creativity is more than just the ability to create. The characteristics of what's created weigh in.
So back to programming. It certainly has the characteristic that complete programs are created out of basic building blocks (your language's syntactic constructs). But is the result appealing, and can it be appreciated distinct from the basic blocks? Here I'm a bit hard pressed to find an answer. The user of a program certainly doesn't appreciate the programming, just the behaviour of the running program. Is there any way to "view" a program outside it's syntactic constructs? UML modeling (or your choice of comparable things) is one way, but that's not really the program anymore, it's a distinct and incomplete representation of the program. Record the live symphony on a handheld voice recorder and play it back - not quite the same.
There is a visual micro-perspective on code. Someone with no language familiarity (or programming familiarity, really) can certainly distinguish between chaotically formatted code and well formatted code (consistent whitespace, capitalization, etc.). But that's not really the beauty of the program, that trait belongs to an arbitrary collection of characters, regardless of whether it's a program or not.
Now contrast my definition with that of an assembly line worker. The worker certainly uses basic building blocks to create an aggregate that can be appreciated distinct from the individual pieces. But he doesn't get to make the decisions for where stuff goes and how it fits together. So is he really creating? No, just building.
So I think creativity also requires some aspect of free will (within the constraints imposed by the medium, of course). This would manifest itself by the ability to intentionally create non-appealing results, but choosing not to unless using it as a form of artistic expression. Which brings up another aspect of creativity: expression. When you write a program, are you expressing something beyond the program itself?
Programming definitely has the free will aspect, just ask anyone who has ever had to debug a mess of spaghetti code. But I'm not so sure about the expression. But I think that goes back to the ability to view a program outside it's syntactic constructs. Is it possible to appreciate the creativity of a program directly, or is some sort of intermediate form required? If you can't appreciate the creativity of a program, does that mean it's not creative, or just that it can't be proven created?