True. There is an API, though, and having pluggable WAL support seems desirable too. At the same time, I don't think we know of anyone maintaining a non-core index AM ... and there are probably good reasons for that. We end up revising the index AM API pretty regularly every time somebody wants to do something new, so it's not really a stable API that extensions can just tap into. I suspect that a transaction manager API would end up similarly situated.
IMO that needs to be true of all hooks into the real innards.
The ProcessUtility_hook API changed a couple of times after introduction and nobody screamed. I think we just have to mark such places as having cross-version API volatility, so you should be prepared to #if PG_VERSION_NUM around them if you use them.