Answer
A public DNS record isn't required — a local (internal) DNS entry resolving that hostname is sufficient, because Azure AD itself never contacts the application's URLs directly. Azure only instructs the client's browser to redirect to the callback URL, passing along the access token it issued; it's the client browser, not Azure, that then needs to resolve and reach that hostname, which is why local DNS resolution (visible to whatever machines/browsers will actually be logging in) is what matters, not public registration.