This was more important before we had custom IAM roles for Monitoring.Viewer, Monitoring.Editor, etc. and you had to grant someone Project.Editor or Project.Viewer to access Stackdriver.
I'd argue that the best practice still holds in that since the project that hosts the Stackdriver Account contains dashboards, alerting policies, uptime checks, etc. If you put VMs and logs etc. in that project and then want to delete that project, you'd lose all your Stackdriver dashboards, alerting policies, uptime checks, etc. for your entire Stackdriver Account. Plus it's easier if you name the project something like "MyAppMonitoring" rather than "Webstore" which monitors 10 other projects.
Best,
Mary