Place the ground meat, breadcrumbs, 1 of the eggs, 1/4 cup of the Pecorino, 1/4 cup of the Parmesan, oregano, salt, and pepper in a bowl. Mix thoroughly but be careful not to overwork the meat.
Form the mixture into 3/4-inch to 1 1/2-inch balls. You should have 20 to 30 meatballs, depending on how large you form them.
Heat 2 tablespoons of the oil in a large skillet over medium-high heat until shimmering. Add the meatballs in batches so as not to crowd the pan and cook, turning occasionally, until browned all over, 3 to 5 minutes. (If they are still a bit pink in the middle, don't worry; they will continue to cook in the broth.) Transfer to a paper towel-lined plate as each batch is ready.
Heat the remaining 1 tablespoon oil in a 4- to 6-quart soup pot over medium-high heat. Add the onion and garlic and sauté until the onions are tender and the garlic is soft but not browned, about 5 minutes. Add the broth and bring to a boil. Add the greens, reduce the heat to low, cover, and simmer for 10 minutes. Add the meatballs and cook 5 minutes more. Meanwhile, combine the remaining 2 eggs, remaining 1/4 cup Pecorino, and remaining 1/4 cup Parmesan in a small bowl and beat with a fork to blend.
Slowly pour the egg mixture nto the simmering soup, stirring slowly in one direction. Cover and simmer just until egg bits are set, about 30 seconds. Stir in the cooked pasta, if using. Taste and season with salt, black pepper, red pepper flakes, and a squirt of lemon juice as desired. Serve immediately.