There are several good posts/answers on SO on this topic. Here’s on explaining how you could potentially run into issues when scoping namespaces at the top of the file: https://stackoverflow.com/a/151560/1617161
Here’s another discussing potential issues: https://stackoverflow.com/a/1342873/1617161
I’ve always placed them at the top of the file, which seems safe if your namespaces and classes are very application specific; ie. Will not clash with other Dlls.
I suppose specific to Entity Framework, it would seem that they’re trying to prevent collisions with the classes in the System.Data.Entity.Migrations namespace. Placing inside the namespace lessens the chance of breaking someone’s code that’s has a class that’s named the same as a class in the System.Data.Entity.Migrations namespace.