This behavior is expected in all of xAct. Every symbol used must be defined with a unique type, as a tensor, as an index, etc. A symbol cannot be defined twice, so there will be error messages if you evaluate DefTensor[T[a, b], M] twice, for example. I guess we could check whether we are trying to define an object exactly as it is defined already, and then not complain, but this seems difficult in general.
If this is important for your workflow, perhaps you can explore the WL function Once. I wrapped Once around the initial <<xAct`xCoba` and around the two Def commands and SetCMetric. Then I can rerun your example notebook multiple times without errors.
I don't understand what you mean by an interference between difference notebooks. Of course, if you evaluate two separate collections of DefTensor commands with the same symbols in the same session, you are going to get into trouble. I don't see any alternative. This is like assigning different values to the same variable from different functions that run simultaneously. Perhaps I'm misunderstanding the scenario you have in mind. But anyway, xAct is certainly not designed to be used in this way.