The problem seems to come from scrollFactor.set() at line 215.
If I change the scrollFactor to (1, 1), the button only appears where he is supposed to, and not on every camera's viewports.
So I suppose it's not a bug and that"s how the button is supposed to work since it is considered as a UI element. Here's the explanations inside FlxObject:
public var scrollFactor(default, null):FlxPoint;
Controls how much this object is affected by camera scrolling. 0 = no movement (e.g. a background layer), 1 = same movement speed as the foreground. Default value is (1,1), except for UI elements like FlxButton where it's (0,0).