As always, it depends.
In theory the log on process is a one-time event and once an active session has been established the actual usage patterns of authenticated users are what really determines the load on a server. In that regard even the computational cost of calculating a hash that was deliberately selected for being slow and expensive such as PBKDF2 is minimal.
As an attack point, you can and should implement measures against brute force attacks such as the ones Womble mentions.
Seperating the login process from your application is a valid software design choice, but not for the reasons you mention. That is typically done to create Single Sign On for a (large) number of different applications, where the authentication logic for each individual app can be reduced to confirming a valid session and you don't need to duplicate login policies, dual factor auth etc. for each individual app.