As others have written, San Diego really isn't known as a snorkeling destination. I snorkel 2-3 times a month from spring to fall. In the summer months, it's pretty neat to see the leopard sharks by the Marine Room or check out the caves in between La Jolla Cove and La Jolla Shores. There are lots of friendly seals in the vicinity. It's nothing like a tropical reef, though. If you're expecting 100 ft vis, warm water, and lots of coral, then prepare to be disappointed by San Diego.
Good luck with your decision...
The SF Bay Area would seem to meet most of the OP's requirements. Pt. Lobos/Carmel Bay south of Monterey does get 100'+ vis some days, although less is normal; I've personally experienced from 4" to 100', with 15'-20' probably being a good yearly average for Monterey, more for Carmel. I agree that snorkeling here would be nothing like a tropical destination, but you can certainly do it (fast, to stay warm
) -- surface water temps range from 50-59 or so, bottom temps from maybe 44-57. The best vis is usually in fall/early winter. There's a fair number of spearfishermen, and people go up to the north coast for AB diving (free only) in season.
As noted the cost of living in the San Francisco Bay Area is very high (but you can buy a house now for a price that could only be dreamed about a couple of years ago). 1-2 hours driving south to Monterey/Carmel for diving, 2.5-4 hours east for skiing, and motorcycling/bicycling somewhere pretty much year round (in between winter storms). When winter temps drop below freezing it's a semi-big deal (cover your plants!), as is 90+ or 100+ depending on where you live; the Bay Area is nothing but microclimates. Move half a mile and you might as well be in another climate zone.
Temps will be lower than Southern California, and as Mark Twain once said, the coldest winter he ever experienced was a summer he spent in San Francisco
I live on the eastern side of the bay about mid-way up it, west of the hills, and I find the climate to be nearly ideal; but I'd freeze in the fog in SF or the Peninsula, and broil east of the hills, in San Jose or parts of the North Bay. Pretty much, you can pick your comfort zone. Max. temp range is about 95 degrees (say 20 to 115), with a smaller spread the closer you are to the bay or the ocean: about 30-105 where I live; highs below 50 or above 85 are out of the ordinary; temps below 35 or above 90 are unusual.
HTH,
Guy (East Bay Native)