Combine the warm water and yeast in the bowl of a stand mixer. Let the mixture sit for 5 to 10 minutes until it becomes foamy. If the yeast doesn't activate, discard it and start again with fresh yeast.
Add the melted butter, vegetable oil, sugar, evaporated milk, salt, vanilla, cinnamon, and eggs. Mix briefly until the eggs are blended into the liquid ingredients.
Knead in the flour with the dough hook on medium speed for 5 to 7 minutes, or until the dough is smooth, soft, and slightly tacky. If mixing by hand, knead on a lightly floured surface for about 10 minutes.
Transfer the dough to a lightly greased bowl, turning once to coat. Cover with a towel or plastic wrap and let rise in a warm place for about 1 hour, or until doubled in size.
While the dough rises, prepare the topping.
Beat together the softened butter, sugar, flour, and vanilla until a soft paste forms.
Divide the topping mixture into two equal portions. Mix cocoa powder into one half until evenly incorporated. If desired, tint the remaining half with a few drops of gel food coloring.
Punch down the risen dough and divide it into 12 equal pieces.
Shape each piece into a smooth ball and arrange them on parchment-lined baking sheets, leaving space between each roll.
Flatten about 2 tablespoons of topping into a thin circle using your hands or a piece of parchment paper. Lay it over the top of each dough ball, gently pressing so it adheres.
Using a sharp knife or a concha stamp, score the topping with a shell pattern or another decorative design, being careful not to cut into the dough underneath.
Cover the shaped rolls and let them rise for 25 to 30 minutes, until noticeably puffy.
Heat the oven to 350°F.
Bake the conchas for 18 to 20 minutes, until the bottoms are lightly golden while the topping remains pale.
Cool on a wire rack for at least 10 minutes before serving.
Enjoy warm or at room temperature with coffee, tea, or Mexican hot chocolate.