OK, I'm probably thinking about this the wrong way since I'm coming from a SQL background.
But for the first two sections of the course, I would implement these functions (transformations and relationships) as views in SQL, and then build Power BI reports off the views.
Advantages I see are SQL views are easier for me to build and debug, may perform better since the work's done on the server, and offer better reuse across other applications.
Is there anything fundamentally wrong with this approach?
I definitely agree. It's typically a good strategy to push as much of the calculations into the database / data warehouse as possible for the reasons you stated. One additional key reason is that if there are several people creating reports on the same raw data, they will each interpret the data and report calculations differently and you may end up with conflicting reports. By creating these functions/SPs in the DB, you'll avoid this issue.
Sam Lester (MSFT)