Hello and thank you @Jon_Shier. I like what I see. The convenience publisher value(), the one that hides the HTTP machinery but exposes errors as regular publishers do, has a very straightforward implementation. To me this is a good sign: the root DataResponsePublisher is quite versatile, and does not hide anything. 
The naming of DataResponsePublisher<DecodableResponseSerializer<DecodableType>>
Combine creates interesting design opportunities for library authors, because we're able to expose specific operators on our publishers. The Alamofire DataResponsePublisher.value() is one of such specific operators. It's not a general Publisher operator. It's an operator for DataResponsePublisher only.
This practice was quite uncommon with RxSwift, for example, where api boundaries almost always expose a type-erased Observable. The proper way to implement specific operators with RxSwift, available for only one observable, is obscure, when not frankly discouraged.
But with Combine, designing specific operators is easy. No wonder we use this opportunity.
Specific operators are pretty cool, because they allow late configuration of a publisher, close to the subscription site, when the application really knows which "flavor" of the publisher it needs.
For this nice scenario to work well, though, we need that the user does not erase publishers on the way with eraseToAnyPublisher(). For example, an emergent Alamofire + Combine good practice could say that one should not erase DataResponsePublisher until as late as possible, in order to make it possible to use a specific operator when needed (close to the subscription site).
I think we api designers must take great care of keeping the names of our "configurable publishers", the ones that expose specific operators, as clean, nice and tidy as possible, in order to prevent the erasing-reflex users may have in front of an ugly-looking publisher type.
On this front, and if you agree with my reasoning, I may suggest to look for a way to improve DataResponsePublisher<DecodableResponseSerializer<DecodableType>>:
extension MyNetworkLayer {
// The desire to type-erase may be strong, here
func myResourcePublisher() -> DataResponsePublisher<DecodableResponseSerializer<Foo>> {
...
}
}