On further investigation, I'd like to keep things the way they are here. The purpose is that assets are compiled before scala compilation - in the same way that it was before. Compiling assets is very fast compared to Scala so it is nicer this way.

However I've added the following in PlaySettings:

    products in Compile := (products in Compile).dependsOn(assets in Compile).value,

Thus the assets are also ensured for products in Runtime (Runtime extends Compile).

Lastly, the (products in Runtime) setting is utilised further in the reload activity when a new classpath is established (PlayReloader.scala).