In a medium bowl, gently combine the ground beef, rice, egg, 1/4 cup onion, 1 minced garlic clove, cilantro, mint, oregano, 3/4 teaspoon salt, and pepper. Mix only until combined so the meatballs stay tender. With damp hands, roll the mixture into about 20 small meatballs, roughly 1 inch wide, and set them on a plate.
Heat the oil in a Dutch oven or large soup pot over medium heat. Add the remaining onion and cook, stirring occasionally, until softened, about 4 minutes. Add the remaining minced garlic and cook for 30 seconds.
Stir in the crushed tomatoes and cook for 2 minutes. Add the beef broth, potato, carrots, bay leaf, and remaining 1/2 teaspoon salt. Bring the soup to a gentle boil over medium-high heat.
Reduce the heat to maintain a steady, gentle simmer. Carefully lower the meatballs into the broth one at a time. Simmer uncovered for 15 minutes, moving the pot gently once or twice rather than stirring vigorously.
Add the zucchini and continue simmering until the rice in the meatballs is tender, the potatoes are soft, and the meatballs reach 160°F (71°C) in the center, about 8 minutes more. Remove and discard the bay leaf.
Taste the broth and add salt if needed. Ladle into bowls and finish with extra cilantro and a squeeze of lime. Serve hot with warm corn tortillas if desired.