Unless you are actually programming Unity3d core itself you are only modding it with the SDK they gave you because you do not have access to the said engine core. Anything about Unity3d programming is modding game play feature. With no support for real time debugging I do not understand how you can actually say you are “a game programmer” and modders are not 
I have been studiying Unity3d for the past 6 months, then switched when displaying relevant information in the editor made me crazy because it was so laggy and it did not support real time debugging, I called quit.
I checked Torque3d out, it had real time debugging, C++ source code access (you do not have source code access in Unity3d), but the documentation is just plain inadequate for people that need to jump into the ship. Although the engine IS very interesting, it gets my second place for having multi-platform deployment like Unity3d.
Then UDK came out and I sat and checked it out carefully. The first thing that made me hesitate for the engine was the 25% cut on profits. Let me just state that after seeing that not only the engine has automatic voice recognition of wav for facial animation, easy and CLEAR modeling and animating tools, Easy integration with Nvidia shader tool (or you can use the visual material editor), a free liscence to speed tree (which costs 15,000$ per seat) a modern content browser. A visual scripting editor (that even my artist find easy to use, because its almost the same as XSI), stepable real-time debugging of scripts. Morphing animations on 3d models. Modern navigation system for AI integrated, Advanced cut scene editor… I could go on a couple more lines, but frankly, any other game engine available on WINDOWS has simply no chance of matching these features, its in its own league.
Now the question you must ask yourself is : do i need all this ? do you target browser games ? Do I even need shaders ? What is my target audience ? Do I target Windows-only games ?
If in any case you target hard core gamers and have a 4-5 people team, can handle 1 to 2 year dev cycle to learn the tools, and are not really interested in the free-online-MMO-Klondike-virtual-goods-that-has-no-real-value then this engine is for you.
Until Unity becomes debuggable in visual studio, I am entirely staying away from it, I find Torque is a better dev platform than Unity. But both have bad documentation. Maybe its me but any documentation that is under the level of Ogre3d (a free 3d engine), is not good if you payed for it.
If you are just plainly serious about making games, you can make games with any engine if you take the time to get it right. Right now, it has taken me a week to understand UDK, the Unreal developper network is very helpfull and the documentation is intelligent, concise and on par, if not better than with Microsoft. This summer it took me 3 weeks with a modeler to get the model importation right, in UDK its so well explained it took us 1 hour.
There are multiple books on mastering unreal like http://www.amazon.com/Mastering-Unreal-Technology-Introduction-Design/dp/0672329913. The volume 3 on scripting is getting out 20th of December 2009 and should target UDK, I guess.
So my 2 cents are if you want to make a next gen looking game easily with good graphic editing tools for artists, go for UDK, the 25% IS worth it. This engine costed 1.5 mil. to liscence 4 years ago… (used in more AAA than you have toes and fingers) Its worth the 25% to get real reusable skills if you also want to have a job in game dev.
By any mean using UDK will cut the need to develop technology and you will be able to concentrate on making good game play instead !