Why can't I create C-shaped blocks or hat blocks?

C-shaped blocks: You can!
wordplay script pic
But you don't declare this in the opening make-a-block dialog. It's when you're adding inputs that you can declare an input to be a C-shaped slot.

Hat blocks: We have an equivalent feature, the "generic WHEN block":
wordplay script pic
You can put any Boolean expression in the hexagonal input slot.