Old thread, pity it didn't get any traction. I second this.
Except perhaps the @staticproperty: since a static (method|property) is bound to neither the instance nor the class, it doesn't seem straightforward/intuitive as to where the value set in the setter should go. E.g. if it sets an attribute in the class that defined the @staticproperty, then that class' attribute could be modified through a subclass or a subclass' instance by doing `obj.prop = value` which seems like too much of "spooky action at a distance` (since a static attribute is by definition bound to the class and only the identical class, not any subclasses or instances).