Well the other reason not to allow it is that the class keeps a member m_root that points to it, and it's not going to like it if that pointer dangles or becomes null :) But in general, the mtp root might have special permissions set and deleting it just seems rude.

Frankly I'm a bit nervous that there's a single protocol op for "recursively delete everything" and I was tempted to go the OperationNotSupported route. But I'm not sure if the MTP spec allows such selective notsupporting.