Taken you up on the Subscription page, it is gone in #1005 along with the thing behind it.
You were right that neither was reachable. The settings page redirects to /settings when the licence type is open, and the usage route is deleted unless SUBSCRIPTION_USAGE_MODEL is unique_managed_hosts, which defaults to empty.
The licence itself
The page was only the front of it. /var/lib/ascender/.tower_version is written by nothing in the Ascender repositories, so the subscription branch was reachable only on an install carried over from Tower, and every other install has been validating a licence it could never fail. So get_licenser, the Licenser class with its certificate parsing and expiry arithmetic, the manifest wizard and the gate that sent every route to it are all gone, and POST and DELETE /api/v2/config/ answer 400 rather than vanishing.
The file that could stop a start
asgi.py and wsgi.py opened the same .tower_version in production and refused to start if it was present and did not match the running version, pointing at a setup playbook that does not exist here. A normal install never had the file, so the check was silent; an install carried over from Tower could fail to boot on a stale one. Both readers are gone, checked by planting a stale file and watching the application come up. make version_file went with them: it wrote .ascender_version on every start and nothing in any of the eleven repositories ever read it.
The enforcement behind it
Removing the licence left more dead code than the page did. check_license and check_org_host_limit both returned early on an open licence, so neither has ever done anything here. Taking them out lifted the validate_license parameter off seventeen signatures and turned up one thing worth naming: a call passed None positionally for the data argument can_change takes, where can_start read it as "skip the licence check".
The Red Hat analytics upload
The other half of Insights. Nineteen /api/v2/analytics/ routes proxied to console.redhat.com using the subscription credentials, so every one now answers an error. The routes, the gather_analytics task and the collectors that only filled that payload are gone; config, counts, instance_info, job_counts and job_instance_counts still feed /api/v2/metrics. Ten settings are unregistered with a migration deleting their rows, so a Red Hat username and password do not sit in an upgraded database with no screen left to clear them from.
What /api/v2/config/ answers now
license_info and eula go as well, the second an empty string nothing read. license_info answered with four constants: valid_key and subscription_name meant nothing, license_type was always open, and product_name was a second brand string that only the masthead read, while every other screen already took the brand from BRAND_NAME in default.strings.json. The masthead reads it there now. The dead license_type comparisons go too, including the two Max Hosts blocks that only ever rendered for a non-open licence, and the readiness check that made the app wait on a licence to decide the config had loaded.
Follow-ups in the other repositories
Both called routes that are now gone, and both are merged: