The reason is this:
The lines in a .sbt file are not statements, they are expressions that evaluate to a Setting or Seq[Setting]. In order to avoid recompiling the whole sbt file when you change it and reload, SBT caches each setting, and scans the .sbt files for changes. This way it can just recompile the individual lines that changed.
Come to think of it, you can probably get around it by making your whole file one Seq:
Seq(
libraryDependencies += ... ,
libraryDependencies ++= Seq(...),
initialCommands in console := ""
)
I haven't tried it though. Also, then you *can't* have blank lines, because sbt will parse each part separately. You could probably have lines that just contain // though.