It makes some sense. One thing does not eliminate the other. If it makes a lot of sense then it's already questionable. Perhaps more important is ASP.NET WebAPI.
If your application really has a single page ASP.NET MVC will be very useless, it will only generate one page. But this page will make a lot of information requests to the server, and the normal one would be to respond with the WebAPI.
If you're using .NET Core there's no need to worry about MVC and WebAPI became one thing .
You have a question about #.
You have another question that compare the use of MVC with SPA .
And finally there's a question that talks about WebAPI .
Note that these Angular2 routes and ASP.NET MVC routes have no direct relationship. One will run on the client (browser) and another on the server. They are different purposes. One technology does not compete with the other, they are complementary.
Obviously, routes from Angular2 will eventually lead to WebAPI routes. The routes of the Angular2 can operate completely independently. If you can solve everything in the client, it does not ask anything for the server. When it needs something from the server a request will be made, then the WebAPI routes take action on the server to determine the appropriate controller to call and provide what it needs.
Understand that using Angular2 is to minimize access to the server, do not think of the two technologies as something that forms one thing, they are different things. Even if it is done right and one day you want to change the Angular2 by React or another technology, it is to achieve without changing anything on the server. The server does not even need to know you're using Angular2.
Does it make sense to have a Controller in aspnet mvc to display only one view?
For the page I think it does not make much sense, it does have the controller for the WebAPI.
Does using mvc aspnet, when used together with angular, tend to be the "function" of WebApi?
Exactly.
From the architectural point of view, does it make sense for me to have ApiController and Controller within the same scope?
Even if you do, if you use MVC, obviously you do not do it if you do not use MVC. If you use .NET Core you do not even have to worry about it.