Some of the menial tasks like version number and naming changes could be done.
The problem is with instances like scene to view_layer, lamp to light, etc. You could theoretically get a 2.7 to convert with a simple script but many of the references and naming that are not necessarily incorrect would be changed regardless. Just today I had an issue when I converted all the context.scene references to context.view_layer but some of the original correct references were stuffed up in the process meaning the user would have to go in and check for all of these little issues.
With a proper algorithm it could be doable though.