Release of a feature marked “experimental” is really a form of beta testing. Three issues come to mind (there may be others):
The edge cases are not (fully) documented, as they haven’t all been found yet. So the current behaviour of the feature is not entirely dependable.
As edge cases are found, the feature’s implementation will likely change in future releases. So the current behaviour may change, and code which uses the feature in its present implementation may need to be tweaked.
Or the feature may be deprecated (see Smartmatch alternatives) and eventually removed, so that code which uses the feature may need to be re-written altogether in the future.
In summary: code using an experimental feature requires more stringent testing now, and (potentially) greater maintenance in the future. For production code, it’s wise to avoid these pitfalls wherever possible.
Hope that helps,