It puzzled me too for a while, but there is a big difference.
If you define an endpoint with the annotaion PayloadRoot and MethodEndPoint is created (and that is what we want because we can have more than one method with a parameter source and and annotation @PayloadRoot)
The PayloadMethodEndpoint Adaptor can only handle classes who implement PayloadEndpoint.
The SourceParamMethodEndpointAdapter can handle MethodEndpoints that have an annotated method witch takes a sigle source param.
If you look to my sample you see where I want to go to.
Actually the PayloadMethodEndpointAdapter is a special case of a SourceParamMethodEndpointAdapter.