In a large skillet over medium-high heat, add the broccoli and ⅓ cup of water. Cover the skillet and let the water come to a simmer, then reduce the heat to medium and let the broccoli steam for 5 minutes, or until fork tender and water has evaporated. If there is still water in the pan when you remove the lid, just increase the heat a bit and boil it off.
Push the broccoli to the edges of the skillet and add the oil into the center along with the garlic, fennel, and red pepper flakes (if using). Cook for 30 seconds, stirring often, to toast the spices and garlic in the oil. Add the salt and stir the broccoli to coat in the oil for about 1 minute. Transfer to a bowl, scraping out all the seeds and garlic.
Brush one side of each slice of bread lightly with olive oil (or smear with butter or mayonnaise). Flip so the oiled side is down and place 2-3 cheese slices on top. Add plenty of the broccoli mixture, then top with 2-3 more slices of cheese. Place the other slice of bread on top (oiled side facing up).
Carefully wipe out the skillet and turn the heat to medium-high. Carefully place the sandwich into the skillet. Let cook for about 3-4 minutes, pressing down occasionally with a spatula to ensure even crisping. Carefully flip, press down again with the spatula, cover with a lid, and let cook for about 3-4 more minutes (covering it will help the cheese to melt). Cut in half and devour!