It is not a bug. You are running two completely separate pipelines and rendering into separate windows with separate interactors.
You need one render window and interactor and then share the camera between the viewports.
For example here is a quick example based on Model
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import vtk
def main():
colors = vtk.vtkNamedColors()
# Set the colors.
colors.SetColor('CubeColor', [250, 128, 114, 255])
colors.SetColor('BkgColor', [230, 230, 230, 255])
# Create the rendering window and two renderers.
ren_1 = vtk.vtkRenderer()
ren_2 = vtk.vtkRenderer()
ren_win = vtk.vtkRenderWindow()
ren_win.AddRenderer(ren_1)
ren_win.AddRenderer(ren_2)
ren_win.SetWindowName('Model')
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(ren_win)
# Create an actor and give it cone geometry.
cone = vtk.vtkConeSource()
cone.SetResolution(8)
cone_mapper = vtk.vtkPolyDataMapper()
cone_mapper.SetInputConnection(cone.GetOutputPort())
cone_actor = vtk.vtkActor()
cone_actor.SetMapper(cone_mapper)
cone_actor.GetProperty().SetColor(colors.GetColor3d('Peacock'))
# Create an actor and give it cube geometry.
cube = vtk.vtkCubeSource()
cube_mapper = vtk.vtkPolyDataMapper()
cube_mapper.SetInputConnection(cube.GetOutputPort())
cube_actor = vtk.vtkActor()
cube_actor.SetMapper(cube_mapper)
cube_actor.GetProperty().SetColor(colors.GetColor3d('CubeColor'))
# Assign our actors to both renderers.
ren_1.AddActor(cone_actor)
ren_2.AddActor(cube_actor)
camera = ren_1.GetActiveCamera()
ren_2.SetActiveCamera(camera)
ren_1.ResetCamera()
# set the size of our window
ren_win.SetSize(600, 300)
ren_win.SetPosition(0, 50)
# Set the viewports and backgrounds of the renderers.
ren_1.SetViewport(0, 0, 0.5, 1)
ren_1.SetBackground(colors.GetColor3d('BkgColor'))
ren_2.SetViewport(0.5, 0, 1, 1)
ren_2.SetBackground(colors.GetColor3d('Linen'))
# Draw the resulting scene.
ren_win.Render()
iren.Start()
if __name__ == '__main__':
main()