An important difference between the two protocols is that REST uses a named resource in a request. SOAP will accept either a named resource or parameters that are written out in the request.
A named map has the information about the map already defined and stored in the repository. At render time you cannot change the layer order or hide a layer, for example. If that is an important capability for you, choose SOAP and do not use named maps. But there are other options.
One way to use REST and have some ability to control layer rendering is to have multiple named maps where each one defines one layer.