I have thought about this too ... although I haven't explored it myself.
First ... I'd like to learn what motivates your question.
Do you have a need? Please share.
I know very well that most Web API examples have a controller-per-type; the Web API routing conventions favor that too. So, like you, my first instinct was that Breeze should support that. I got lathered up about it, actually, and was putting together a case for why we MUST support controller-per-entity.
But I couldn't make that case. In fact, it didn't make much for a Breeze application. Let me explain.
In a non-Breeze Web API controller, you're usually writing 4 or 5 controller methods (2 queries, insert, update, delete) for every type. Four to five methods is sufficient to justify dedicating a class to a type even if you do delegate most of the actual work to helper classes that do the actual data acces. Web API controllers are supposed to be thin.
You could argue that the controller-per-type approach "separates concerns". If I have a new type or want to modify an existing controller, I'm won't have to disturb the code for an unrelated type. The price for this purity is a lot of files to manage and coordinate. Many folk happily make that trade-off ... particularly since a given controller for a type is bound to be ... what ... 30 lines of code or more.
In Breeze you generally need only one method per type ... a method returning an IQueryable<T>. That method could fit on a single line but more typically occupies 3 lines. You certainly can have more methods per Breeze type and that makes good sense for high profile types. But not for the 80% of types that typically are small and consumed "as is" by clients. I personally can't see the point of writing and maintaining 200 entity class files each with 3 substantive lines in them. I'm not that kind of a purist.
Aside: if you're really keen on the separation thing, consider putting each type in its own partial class, then and have the compiler combine them into a single Web API controller class. I might even use this 'partial class' approach to aggregate closely related types just so I didn't have one big controller class file for a 200 entity model. With partial class files you'd get your lexical/logical separation of concerns and you could use source control to identify/blame the source of changes on a per-file basis.
On the other hand, I do see advantage to breaking up the service into separate controllers, each oriented toward a particular "module" or "workflow". Each handles the service needs of a submodel dedicated to the module/workflow.
These separate controller/modules can have entity classes in common (e.g., a Customer class in the Order Management and Sales modules). They can have their own DbContexts too if you're using EF.
This poses no problem for breeze on the client. When you create an EntityManager, you simultaneously target a controller by specifying the route to that controller in the service name.
Personally, in this situation, I'd have a different EntityManager per module/workflow. But an EntityManager can talk to multiple controllers; you change the service name to redirect its attention to another controller. And its cache can hold entities from different services/controllers.
But that's different than dedicating a controller-per-type. With controller-per-type, three challenges come immediately to mind.
First, I think you'd end up with a metadata method and a save method for each type-focused controller. You could finesse that by dedicating a single controller to providing save and metadata services for all of your entity controllers. But you'd have to play some games on the client to make that work ... and it starts to seem hacky to me.
Second, assuming you wanted one EntityManager to manager several of your types on the client, you'd have to remember to change the EntityManager's service focus before performing a service operation affecting a different type. That would be a bit of a PITA if you were doing that a for every single entity type.
Third, you wouldn't be able to traverse entity graphs across services/controllers. If you had a customer entity in your Customer controller/service and an order entity in your Order controller/service, you wouldn't be able to write "someCustomer.Orders" because they aren't in the same "service space". I'm sure you could monkey patch the types on the client to make it happen but that would be work ... work you could put into building a great application. You're also introducing more moving parts, more to test, more that can go wrong. Where is the benefit?
There may be other obstacles that I haven't thought of yet. Maybe some namespace issues? I don't know. Nothing is insuperable.
I DO see value to a controller per module/workflow. In fact, I'd recommend that ... and also recommend that you correspondingly dedicate separate EntityManagers per module/workflow/service ... for while the EntityManager is designed to handle multiple services, I haven't thought of a good reason to do that yet.
But given the impediments to controller-per-type and no advantages that I can see, why go down the controller-per-type road?
Maybe you can school me otherwise. Make a case. If the case is compelling enough, we'll make it happen.
Great question though!