In a large soup pot, heat 2 tablespoons of olive oil over high heat. Add a layer of broccoli, cook on one side 3 to 4 minutes or until dark brown. Transfer to a big bowl and repeat with remaining broccoli and more oil. When done season with 1 teaspoon salt and set aside.
Reduce heat to medium-low. Add butter and remaining 2 tablespoons of oil to pan. Add onions and garlic, black and red peppers, and half teaspoon salt. Cook until soft and translucent, about 4 minutes.
Add potatoes to the pot with one quart water and remaining 1 teaspoon salt. Bring to a simmer, cover pot and cook until potato is just tender, 10 to 15 minutes. Add broccoli, cover again and cook until tender, another 5 to 10 minutes.
Add lemon zest and roughly puree soup.
Stir in lemon juice
Serve with grated Parmesan, a drizzle of olive oil, black pepper and sea salt.