It's unfortunate gitlab is built as a monolith. I'd be very capable of writing the code for implementing such a feature myself if gitlab had a first class API. The code, as we all know, would look something like this:
for commit
diff = commit.diff
for line in diff.result
if 'todo' in line
line_id = hash(line)
if existing := issues.find(tags={'todo_id': line_id}):
existing.update(code_url = new line location)
else:
issues.create(....)
But because these APIs aren't first class a change like this requires deep knowledge of gitlab's internals and acceptance and prioritization of features from gitlab's core team.