Melt 3 tablespoons butter and olive oil in a large skillet over medium heat.
Add bread cubes and toss to coat. Cook, stirring frequently, for 5-10 minutes until golden and crisp.
Transfer croutons to a bowl and toss with garlic powder, a pinch of cayenne, salt, and pepper. Set aside.
In a large pot or Dutch oven, melt remaining 3 tablespoons butter over medium-high heat.
Add broccoli, onion, garlic, dry mustard, red pepper flakes, cayenne, and 1 teaspoon salt. Cook, stirring, for 5-6 minutes until fragrant and vegetables begin to soften.
Stir baking soda into 1 cup water and add to the pot. Bring to a simmer, cover, and cook for about 20 minutes until broccoli is very soft.
Add baby spinach and cook for 1 minute until wilted.
Transfer half of the soup to a blender. Add half of both cheeses and blend until smooth.
Pour blended soup into a bowl. Repeat with remaining soup and cheeses.
Return all soup to the pot and heat through over medium heat. Add water if needed to adjust consistency.
Season with salt and pepper to taste.
Ladle into bowls and top with crispy bacon, croutons, and extra grated Parmigiano-Reggiano. Serve immediately.