What's the problem with inverse-functional datatype properties?

...inverse-functional datatype properties are not allowed in OWL 2 DL although they are common in vocabularies such as FOAF (e.g., foaf:mbox_sha1sum).

Anyone know the technical reason why they are not allowed? (To me, it seems a pretty innocuous thing... similar in principle to inverse-functional object properties.)

Hm, my original guess has been that there must be some undecidability results (as often, when some obvious feature is not included in OWL DL). But today I checked through the different OWL 2 specification documents, and also through the old OWL 1 documents, and even skimmed through my copy of the Description Logics Handbook (published pre-OWL 1), and was unsuccessful to find any explicit rational given. :-(

Then I remembered an internal document of the OWL WG, which was used for the discussion and development of OWL Keys. The text starts with following "Background" discussion:

Keys (aka, inverse functional datatype properties) are clearly of vital importance to many applications. Key reasoning in general in the context of OWL can be unfeasibly difficult (given what we currently know and anticpate). However, general inverse functional properties are almost always overkill. Instead of tackling the general problem, we propose a restricted version which meets important use cases. We aim for robust implementations quickly, so are willing to forgo feasible features that unduely complicate the implementation (as far as we can currently tell). As our implementation knowledge advances, we can update the spec to cover more features.

So, again no mentioning of hard theoretic facts, but only that inverse-functional data properties IFDPs are "unfeasibly difficult (given what we currently know and anticpate)". Maybe it is that the DL research community has not yet found a good method to implement complete and efficient decision procedures for expressive DLs with IFDPs, but I can't tell for sure.

I suggest you (Signified) to ask this question on the OWL-DEV mailing list, since chances are bigger there to find some experts giving you a satisfying answer.

Here is a related answer and an explanation by Michael Schneider:

if you take the inverse of an IFDP, you get a property with rdfs:Literal as its Domain. Again, this is not allowed in OWL DL.