Pocket milling just re-produces the same set of cuts down to the Max Depth, where each set of cuts is Cut Depth lower than the previous set. It is good if you absolutely must have a pocket with vertical walls as it only contours the canvas at the specified Z and uses that to generate the cuts.
Horizontal milling, on the other hand, generates a new set of cuts at each cut level, rather than using the same contours for all cut levels. It re-contours the canvas at each cut depth to determine where to remove material from to re-produce the canvas' shape without cutting into the canvas.
Pocket milling doesn't care about the canvas' shape after the initial contours are generated.
The Profile Milling operation behaves the same as the Pocket Milling except that instead of removing all of the material inside of the waterline contoured Z level down to Max Depth it instead just follows the contour, and can include a Cut Width (i.e. total spacing from inner-most to outer-most cut) as well as including a waterline contouring offset. I'd suggest using the profiling operation with a Cut Width (don't forget a stepover!) to get the tricky spots.
Hope this helps!