It's not necessary but in the given case it's obviously useful as there is more to abstract than just the html element - the styling.
not true, separating components by concern can save you a lot of fiddling with memoization