Do what you did in the very first example, but try increasing the U value for resolution under curve properties. There may be a difference when it gets somewhere above 24.
Other than that, I seem to have found that radius for bezier curve end points set as vector curve seems to be handled differently than other types. To keep a straight segment when the endpoint is vector, the radius for that point has to be set to 0.750 vs. other points being set to 1. (Why? I don’t know. Odd.) Or you can just set the endpoints to something other than vector.
I also seemed to find that a segment with vector handles on each end has a smaller radius than a segment that has other handles on it despite having the same radius value setting for both points on the segment.
If there’s a bug, then perhaps all those things are related.
Curiosity got me, so I looked at one more thing… Showing it in wireframe seems to make it apparent that the bevel shape in a sharp corner isn’t being scaled properly for the sharp corner of the bend. It’s aspect ratio needs to be stretched so the profile can be maintained on the segments meeting up at the corner. There’s actually some formula to calculate for the correct scaling to maintain a section profile for any given shear angle. (I remember seeing some topic on that in regards to doing intersects with Wings3D. But that’s different software and it was some years ago. It’s likely the Blender problem with cusps on beveled paths could be fixed knowing that info though.)
Tried hard to find that last tidbit… Didn’t seem to find it, but I think it involves multiplying the width of the profile by the secant of 180°-angle/2. Then all the edges leading up to that angle should be parallel instead of converging as they do when the profile is rotated without scaling.