Cook orzo in a large saucepan of boiling water until just short of tender, 8 to 9 minutes. Drain and rinse with cool water. Return to the pot and toss with 1 teaspoon oil; set aside.
Heat 1 tablespoon oil in a medium skillet over high heat. Add onion and 1/4 teaspoon salt; reduce heat to medium-low, cover and cook, stirring frequently, always covering the pan again, until the onion is translucent and beginning to color, 10 to 15 minutes.
Meanwhile, coarsely chop spinach. Coarsely chop enough parsley to equal about 4 cups. Set aside 3 cups and finely chop the remaining 1 cup; set aside separately.
Peel and dice potato. Combine the potato, the sauteed onion, 1/4 teaspoon salt, broth and water in a soup pot or Dutch oven. (Set the onion pan aside for later.) Bring to a boil over high heat. Reduce heat to maintain a simmer and cook for 12 minutes. Stir in the spinach and the 3 cups coarsely chopped parsley; return to a simmer, cover and cook for 3 minutes more.
Meanwhile, heat the remaining 1 tablespoon oil in the onion pan over medium heat. Add garlic and let it sizzle for about 45 seconds. Add walnuts and cook, stirring and watching carefully to prevent burning, for about 3 minutes. Stir in the remaining 1 cup parsley and crushed red pepper; cook, stirring, for 2 minutes more. Remove from the heat.
Stir the cooked orzo into the soup, then stir in the parsley-walnut mixture. Season with lemon juice and pepper. Taste and add more lemon juice, salt and/or pepper, if desired. Return the soup to a simmer.
Combine tomatoes with the remaining pinch of salt in a small bowl. Garnish each bowl of soup with a spoonful of the tomatoes and a drizzle of olive oil.