You'd make several sets of marks after which the requested command is applied to all selected blocks. So with /Cuboid you would make a few rectangles and with /Triangle a number of triangles. The important distinction is that overlapping parts in selections are processed only once by the command.
On the command syntax I have no spectacular ideas yet, though that shouldn't be a reason to reject the idea itself.
Yes I know there are several ways of repeating commands or further specify the affected blocks.
Often, area seems much easier to handle than blocktypes.
Often, area seems much easier to handle than blocktypes.