Hey Ben -
You absolutely can drop the data engine and repository on a machine that is "beefier" than other workers in your farm.
This could potentially become a "bad" thing if you're ALSO implementing the new High Availability features of Tableau Server 7.0.4 which allow the Repository and Data Engine to fail over to a different node. If this occurred and the node they fail over to is puny by comparison, you'll see performance degradation. Not a big surprise there though, right?
Another thing that you'll want to consider - Backgrounders. Beginning in 7.0.2, these guys actually CREATE/WRITE extracts that are being refreshed, so they can suck a whole lot more resources (generally CPU) than they used to. This is actually good for the overall scalability of Server, but can catch folks unawares. To take this into account, latest / greatest best practices say to locate the data engine and backgrounders on different hardware than your vizqls and webapps - you wouldn't want a bunch of backgrounders which start refreshing extracts to suck up all your CPU and leave your poor vizqls with no resources to actually render reports