Bring a large pot of water to a boil over high heat. Season with salt, then add the spaghetti. Cook according to package instructions to "al dente." Reserve 1 cup of the pasta water, then drain and rinse the pasta. Set aside.
Heat about 2 tablespoons of olive oil and garlic in a large pan over medium heat for about 2 minutes, stirring often. Add the asparagus pieces (MINUS the tips), salt, pepper, and 1/3 cup of the reserved pasta water. Cover the pan and cook the asparagus for about 5 minutes or until tender.
Add the cooked asparagus to your blender or food processor and purée until smooth. Add in the cilantro (or parsley), walnuts and season with salt and pepper. Blend well until smooth.
Add puréed asparagus mixture back to pan, along with the asparagus tips. Mix in the cooked pasta, the remaining tablespoon of olive oil, lemon zest, and a little more pasta water as needed to keep the sauce loose. Heat on low for a minute or two to allow pasta to absorb some of the sauce. Serve immediately, topped with more chopped walnuts and pecorino cheese.