The naming of safeTransferFrom is perhaps the worst naming of any function ever, almost criminally bad.
If we were to rewrite ERC721 today I'd be ok with totally omitting the function, and if we must include it, instead name it transferFromWithDangerouslyAllowedReentrancy