There's an issue with the way converging shells terminate into each other when encountering a narrowing / tapering path.
Shells will not terminate until they are completely overlap each other. When fine detailed areas have 2 layers completely overlapping, this creates a bulge instead of a smooth transition on the exterior of the print.
Here's an example of a tapering cylinder with a hollow section in the middle:
3 shells with 15% infill is used.
Shells starting to converge:
It is only after this point, where the 3 shells are completely on top of each other when the slicer will terminate into 2 shell mode. Shells should be terminating as soon as they touch each other, or at most after a 20% overlap.
Here's a closeup of the printed result:
The effect in person is almost a stair-stepping pattern. It interrupts a smooth tapering cylinder with bulging lines.
It seems like the code doesn't take into account the width of the lines themselves when determining the threshold for when to terminate into fewer shells.
-----------------------------------------------
If you're going to be looking at this area of code, I'd also recommend looking at scenarios like this:
The width between the last 2 shells is less than 1 shell width so it isn't trying to put 2 of them on top of each other, but when it comes to topfill I'd rather it break the rules and try to close any gaps possible. A single line of infill in this type of scenario would be great.
Also, I recommend for any exterior surface to overwrite "minimum infill length" parameters to 0. It's a great feature, but it does occasionally leave holes on the exteriors of models where the infill length is too short.