Problem with z-buffering when using Parallel Projection

The problem occurs with VTK 8.2.0. The problem does not occur with VTK 6.0.0 or VTK 9.1.0.
Attached is some simple code that illustrates the problem. We have two cones (to define the size of the bounding box) and a tiny sphere between them. If you zoom in on the sphere, you see the standard indications of insufficient bits for z-buffering, meaning that some parts of the sphere become transparent (This happens if lines that are supposed to be hidden are within a certain distance of lines that are visible). Although the code reports renderWindow->GetDepthBufferSize() = 24, it seems we have just 16 bits available for z-buffering, which would be expected if it is a 24-bit float with a 16-bit mantissa. If you look at the numbers for the near and far clipping planes, then the scale of the artifacts can be predicted exactly if z-buffering is done with a floating point number with a 16-bit mantissa. Are there any settings available in VTK 8.2.0? There is no problem if you use VTK 6.0.0 or VTK 9.1.0.

// This is a demonstration of a Problem with z-buffering when using Parallel Projection.
// There are two cones with their tips close together. Zoom in on the gap to see the small sphere.
//
// Note 1/(2^16) is approximately 0.000015259, and this is the fractional size where we see artifacts when using VTK 8.2.0
// (On many systems at 24-bit floating point number has 16 bits for the mantissa)
//
// References:
//
// https://discourse.vtk.org/t/object-is-clipped-during-rotation-zooming/7794
// "Object is clipped during rotation + zooming"
//
// https://discourse.vtk.org/t/zoom-behavior-in-parallel-vs-perspective-projection-camera-position/1148
// "Zoom behavior in parallel vs perspective projection (camera position)"
//
// https://discourse.vtk.org/t/near-clipping-plane-problem-when-in-parallel-projection/2515
// "Near clipping plane problem when in parallel projection"
//
// https://gitlab.kitware.com/vtk/vtk/-/issues/19123
// "OpenXR: Fix near plane clipping with camera inside volume"

#include <vtkActor.h>
#include <vtkCamera.h>
#include <vtkDataSetMapper.h>
#include <vtkNew.h>
#include <vtkPolyData.h>
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkSmartPointer.h>
#include <vtkSphereSource.h>
#include <vtkConeSource.h>
#include <vtkPolyDataNormals.h>

int main(int argc, char* argv[])
{
  // Create a sphere
  vtkNew<vtkSphereSource> sphereSource;
  sphereSource->SetThetaResolution(20);
  sphereSource->SetPhiResolution(11);
  sphereSource->SetRadius(0.00004);

  // For VTK 8.2.0 and later, problems with Moire patterns can be removed by adding normals
  // https://discourse.vtk.org/t/problem-with-parallel-projection-after-upgrading-to-vtk-9-1-0/11169
  vtkNew<vtkPolyDataNormals> normals;
  normals->SetInputConnection(sphereSource->GetOutputPort());
  normals->ComputePointNormalsOn();
  normals->ComputeCellNormalsOn();
  normals->Update();

  const double coneCenterParam = 0.45;
  const double coneLengthParam = 0.4498;
  const double coneRadius = 0.25;

  // Create cone number 1
  vtkNew<vtkConeSource> cone1Source;
  cone1Source->SetHeight(2.0 * coneLengthParam);
  cone1Source->SetRadius(coneRadius);
  cone1Source->SetCenter(0.0, 0.0, coneCenterParam);
  cone1Source->SetDirection(0.0, 0.0, -1.0);
  cone1Source->Update();

  // Create cone number 2
  vtkNew<vtkConeSource> cone2Source;
  cone2Source->SetHeight(2.0 * coneLengthParam);
  cone2Source->SetRadius(coneRadius);
  cone2Source->SetCenter(0.0, 0.0, -coneCenterParam);
  cone2Source->SetDirection(0.0, 0.0, 1.0);
  cone2Source->Update();

  vtkNew<vtkDataSetMapper> sphereMapper;
  sphereMapper->SetInputData(normals->GetOutput());
  vtkNew<vtkDataSetMapper> cone1Mapper;
  cone1Mapper->SetInputData(cone1Source->GetOutput());
  vtkNew<vtkDataSetMapper> cone2Mapper;
  cone2Mapper->SetInputData(cone2Source->GetOutput());

  vtkNew<vtkActor> sphereActor;
  sphereActor->SetMapper(sphereMapper);
  sphereActor->GetProperty()->SetInterpolationToFlat();
  sphereActor->GetProperty()->EdgeVisibilityOn();
  vtkNew<vtkActor> cone1Actor;
  cone1Actor->SetMapper(cone1Mapper);
  cone1Actor->GetProperty()->SetInterpolationToFlat();
  cone1Actor->GetProperty()->EdgeVisibilityOn();
  vtkNew<vtkActor> cone2Actor;
  cone2Actor->SetMapper(cone2Mapper);
  cone2Actor->GetProperty()->SetInterpolationToFlat();
  cone2Actor->GetProperty()->EdgeVisibilityOn();

  vtkNew<vtkRenderer> renderer;
  renderer->GetActiveCamera()->ParallelProjectionOn();

  vtkNew<vtkRenderWindow> renderWindow;
  renderWindow->AddRenderer(renderer);
  renderWindow->SetSize(640, 480);

  vtkNew<vtkRenderWindowInteractor> interactor;
  interactor->SetRenderWindow(renderWindow);

  renderer->AddActor(sphereActor);
  renderer->AddActor(cone1Actor);
  renderer->AddActor(cone2Actor);

  renderer->ResetCameraClippingRange();

  renderWindow->SetWindowName("Demo");
  renderWindow->Render();

  int testInt = renderWindow->GetDepthBufferSize();
  std::cout << "renderWindow->GetDepthBufferSize() = " << testInt << std::endl;

  interactor->Start();

  return EXIT_SUCCESS;
}

I have corrected a statement in my original post. My original post contained an incorrect statement about VTK 9.

Here is the corrected statement:
The problem occurs with VTK 8.2.0. The problem does not occur with VTK 6.0.0 or VTK 9.1.0

Since we are very committed to VTK 8.2.0 we are looking for any help on this issue for VTK 8.2.0.