I have to concede on the image issues. I'll append this to my original statement. for my usage of it, it seems to handle all the basic features I want. But you make a good point about it not working well with sprites, as you have to reprocess the UVs
That is particularly interesting. I can't imagine why that would help. Do you have a link to anything that explains the issue?
which is inefficient if you don't know the tricks for it, eg. skipping rendering when the current event is a keypress etc
Basically, if 2D is your most important aspect, it's hard to argue that Unity saves you much time over just writing DirectX or OpenGL code yourself. Pretty much any other system, eg. Flixel, XNA, SDL, Cocos2D, pyglet, SFML, etc etc., gives you better 2D support.
After the rest of your post, this makes sense in general, but I will argue one point. Unity is will placed to execute on a lot of environments. that gives it more clout than DirectX, XNA or a lot of others. But the Multi-OS issue is probably about the only thing, and if its just 2D, Java would probably be the most flexible.
I think you have misunderstood the decorator pattern, which is specifically about making a certain function or method call do different things by wrapping the call in another call.
It adds a behavior to a class. There is no limitation as to whether that is as an object or a method. I typically use it as a series of interfaces, like IModify, IPaint, IDelete, etc... Then I would create objects like FrictionModifier : IModify, and then add copies to lists on the gameObjects of choice so they have friction, or gravity, or EnemyMissileCollision, etc...
If you perceive the decorator pattern as object based, instead of method based, then its the same principal. You tie an object that inherits the BehaviorModifier to the gameObject of your choice, and their properties apply without affecting the rest of the game objects of the same type. I can see the benefit of method based Decorators, but with objects, I found it easier to apply custom alterations per gameObject.
But back to the core concept of my quote, no 2D support is entirely false, I agree that it is partially false. Depending on your needs for a 2D game, their stuff would be really annoying. For a 2D space shooter with individual images, and not a lot, it seems like it would work just as well as most other basic 2D engines. Sprites and a UI Designer, not so much.