Dipende. Magari la logica di accesso ai dati può servire in un servizio (es. per importazione) oltreché nell'applicazione Web
Beh, sicuramente occorre fare un'analisi caso per caso. Però, nell'esempio proposto, l'accesso ad un DB, sia usando ADO che Entity Framework Core, è così semplice all'interno di ASP Net Core MVC che non so se ne vale la pena.
senza contare che la "complicazione" di cui parliamo è banalmente la creazione di un progetto Class Library
Io ho dovuto fare così in un caso in cui ho dovuto utilizzare delle librerie di terze parti che venivano mal digerite all'interno dell'ASP.
Comunque hai ragione, la strada giusta va scelta a livello progettuale e non esiste una soluzione univoca.