I’ve performed some more investigation here and found a few issues with my initial post.
In 5.4, I did not have Debugging Symbols enabled. This prevented my breakpoints from being hit, which I incorrectly assumed that the code was not being executed. Both the FAnimationViewportClient and SkeletalDebugRendering functions are being touched in 5.4 and 5.5.
With this, I believe that there is a bug regarding SkeletalDebugRendering::DrawBonesInternal() and FAnimationViewportClient::Draw() functions. The viewport class calls UpdateBonesToDraw() which calculates the BonesToDraw variable for the main Preview Mesh component from the scene. It’s Draw() function however, iterates through all Preview Meshes in the scene. This calls FAnimationViewportClient::DrawBones() for each mesh, which internally calls SkeletalDebugRendering::DrawBones(), however it uses the RequiredBones from the current mesh, but the BonesToDraw of the main mesh. This results in the SkeletalDebugRendering::DrawBonesInternal() call to hit an assertion.
I believe if BonesToDraw, which is an optional argument, was not passed here that the SkeletalDebugRendering would correctly calculate the BonesToDraw value internally. Alternatively, the viewport could update BonesToDraw based on the mesh it is currently processing. Either would fix the problem.