I'm not fundamentally against this but I think I'd prefer to start as simple as possible, see how it works and evolve later on as required. Specifying the return type adds another level of complexity, e.g. what if it doesn't match the target parameter's type? Btw. the method taking a destination object in Dozer is also void; I like that approach of doing one thing in one way instead of multiple ways.

> `return myMapper.sourceMapToTargetMap(computeInternalResult(...), new ConcurrentHashMap<>());`

I think this example should be solved differently, by declaring the return type of `sourceMapToTargetMap()` as `ConcurrentMap`. Internally `ConcurrentHashMap` would be used as implementation type (currently that's not yet implemented, though).

> So, any chance you might give it some more thought? :)

Yes, absolutely. I'd just suggest to start simple and add this later on if really needed.