You should be able to retrieve easily the list of attributes which are writeable by using the constructed attribute allowedAttributesEffective (http://msdn.microsoft.com/en-us/library/ms675218(v=vs.85).aspx).
However, the constructed attribute returns some attributes which can’t be changed… So we have to do something more.
The best way I found is to retrieve all attributes which are protected by the system (http://msdn.microsoft.com/en-us/library/ms680025(v=vs.85).aspx). When it's done, i'm just removing each of them from the list of allowed attributes returned by the constructed attribute allowedAttributesEffective.
If you have a better way… you are welcome !