Bring broth and water to a simmer in a medium saucepan. Add asparagus and simmer, uncovered, until just tender, about 4 minutes. Transfer asparagus with a slotted spoon to an ice bath to stop cooking, then drain. Keep broth at a bare simmer, covered.
Cook onion in 2 tablespoons butter with 1/4 teaspoon salt in a 4-quart heavy saucepan over medium heat, stirring occasionally, until softened, about 5 minutes.
Add rice and cook, stirring constantly, 1 minute. Add wine and simmer, stirring constantly, until absorbed.
Stir in 1/2 cup broth mixture and briskly simmer, stirring frequently, until absorbed. Continue adding broth, 1/2 cup at a time, stirring frequently and letting each addition be absorbed before adding the next, until rice is creamy and tender but still al dente (it should be the consistency of a thick soup), about 18 minutes. (There will be leftover broth mixture.)
Stir in shrimp and cook until just cooked through, 2 to 3 minutes.
Stir in asparagus, zest, remaining 2 tablespoons butter, parmesan, parsley, and pepper to taste. (Thin risotto with some of remaining broth if necessary.).