I see why you're confused. Tweens are built in to allow you to interpolate from x1 to x2 without having to bother keeping track of delta time and such inside the sensitive _process functions. A tween is something you just setup and let it do it's own thing; the way you're using it equates to setting it up as long as the player is trying to move.
Example of where I would use a tween:
var tween : Tween = get_child(0) # get my Tween node
tween.interpolate_property(self, "zoom", zoom, zoomLevel, 0.7, Tween.TRANS_CUBIC) # use it zoom in or out smoothly
tween.start()
This tween code facilitates smooth zoom in/ zoom out movement. I only have to call it once and it runs over many frames.
Places I wouldn't use a tween:
Anywhere I need frame to frame control over the variable (like in player movement script). Why? You know x1 (current position) but you don't really know x2.