The columns could be patterns and/or template parts to avoid repetition between templates.
If we think the user shouldn't be able to reuse these sections, the solution is to use a hidden pattern. If we decide it's a good idea for the user to reuse them we need to decide between pattern or template parts. If we want the user to be able to edit these sections and have those changes propagate to everywhere those sections are used, we would use template parts (because synced patterns are something that can't be done on a theme level yet, only the user level). If we think every instance of these sections is independent, then we would go for a normal pattern.
The columns could be patterns and/or template parts to avoid repetition between templates.
If we think the user shouldn't be able to reuse these sections, the solution is to use a hidden pattern. If we decide it's a good idea for the user to reuse them we need to decide between pattern or template parts. If we want the user to be able to edit these sections and have those changes propagate to everywhere those sections are used, we would use template parts (because synced patterns are something that can't be done on a theme level yet, only the user level). If we think every instance of these sections is independent, then we would go for a normal pattern.