When overriding a hook for sending an email as part of the auth workflow, not only the link but also the lifetime of the link is provided, allowing the email (or whatever presentation) to tell the user how long to expect the link to work.
However, when creating a link outside of the normal auth flow with CreateMagicLinkByEmail, the CodeLifetime is discarded, meaning it's impossible (without making assumptions) to tell the user how long the lifetime will last.