Of course, if you want to modify the appearance of a widget, then you need to understand the structure of the widget, and, yes, you will have problems with version updates.
You asked about changing "some value in a list", which is pretty ambiguous. What is it you are trying to change? For example, changing some text is as simple as wrapping it in a <span class="some-class">something</span>.
Can you give a concrete example of what you are talking about? I really have no clue from what you posted. We can't really discuss the "correct" way of doing something until we know what it is you are trying to do.