It is not really a bug, server connect component loads the new content when it detects the binded if changed, at the same time the view loads a new content page and after the content page is loaded it injects a new server connect component which is loaded.
As a workaround you could try using a server-side template for the url of server connect.
<dmx-serverconnect id="get_lecture_video_v2" url="api/Courses/get_lecture_video?lecture_id=<%=_('$_PARAM.lecture_id')%>"></dmx-serverconnect>