Peel and devein shrimp, reserving shells. Heat stock in a large saucepan and add shells. Cover and simmer for 30 minutes.
Chop shrimp into bite-sized morsels. Toss with olive oil and garlic; cover and refrigerate.
Strain stock and discard shells. Keep warm on low heat.
Melt 2 tablespoons butter and 2 tablespoons olive oil in a heavy saucepan over low heat. Add shallots; cook until softened, but not browned, about 4 minutes. Add dry rice and stir until each grain is coated and starts to turn translucent, about 3 minutes. Raise heat to medium. Add wine, stir and simmer until mostly evaporated, 3 to 5 minutes.
Ladle 1/2 cup of warm stock into the rice mixture; stir constantly until stock is absorbed, 3 to 5 minutes. Add rosemary and saffron and another 1/2 cup of stock; stir until absorbed, about 3 minutes. Repeat with about 4 more cups of stock, 10 to 15 minutes. Add marinated shrimp to the remaining 1 cup stock; stir for 1 minute and pour mixture into the rice. Cook and stir until risotto is tender yet firm to the bite, 6 to 8 minutes more.
Stir Parmesan cheese, lemon zest, red pepper flakes, and remaining 2 tablespoons butter into the risotto. Stir until creamy. Serve immediately in warmed bowls.