You are missing nothing. This is how simple NAT works. You can work around the issue by adding your dynamic name to the hosts file in your computer and assign it to your local IP (better add it to the router if it allows it).
Let's say that your router has 192.168.0.1 as its internal address and 18.104.22.168 as it's external (internet facing) IP. The external dns are going to resolve your name to the external IP of the router (22.214.171.124). Your computer will ask the router to connect to this IP, and it knows it is its own. As the router is only doing NAT from outside to inside, it will answer it the same way that any other internal query (showing it's configuration page).
What I'm trying to explain is that it's not like your query is going out to the internet and enter again through the router, it will never leave your own LAN.
If you really want to change this, you can try to flash your router with an open firmware that allow more complex configurations, but I don't really believe that it's worth the trouble.
I believe that the saner configuration is to make your name to resolve to another IP for the internal network.