mojoBasePage is just a base class for .aspx pages, the business object that represents a CMS page is PageSettings currentPage = CacheHelper.GetCurrentPage();
so anytime that you get the current page it is always based on the pageid of the request, if no pageid is in the query string it returns the first page in the site (the root level page with the lowest sort), ie the home page.
non cms .aspx pages do not have a PageSettings, only CMS pages have that so if you try to get the current page on non cms pages it will still be based on the pageid in the query string and if there is none then it will be the home page. For feature edit pages we have to pass the current pageid in as a query string param.
Hope that helps,
ps this is not a feature request it would have been a better question in the developer forum