I know there is one way to search and replace variable occurrences across a source file.
But is there any better way by which if I rename a variable at one place it gets renamed at other places as well without search and replace or substitute?
You can just use the usual workflow
/original cwreplaced n.n.
You can take also advantage of the
/original<CR> cgnreplaced<ESC> .....
next matched pattern, so instead of using
go to next and
repeat you can just
.. which means
gn means "search for next occurence and start a visual selection over it", you can read more about it on the doc: