Combine the onion, garlic, carrots, lemongrass, cilantro, shiitake mushrooms, jicama, daikon, pineapple, apple, water, coconut sugar, and salt in a large stockpot. Bring to a simmer over high heat and then lower to a steady simmer for 60 minutes.
While the broth simmers, in a saucepan, warm the olive oil for the scallion oil over medium heat. After 90 seconds when the oil is hot, add the scallions, garlic, annatto, and salt. Lower the heat to a simmer and cook for 90 seconds until fragrant. Remove from the heat and set aside.
Strain the broth through a wire-mesh strainer and return the clear broth to the pot.
Warm the olive oil for the soup base in a stock pot over medium-high heat. After 90 seconds when the oil is hot, add the ground coriander, ground cinnamon, anatto powder, and gochugaru. Stir-fry for 90 seconds.
Add the vegan shrimp paste, the sliced lemongrass, tofu puffs, and sauté for 2-3 minutes until the tofu puffs are well coated in the seasoned oil.
Pour in the strained broth. Bring to a simmer over medium heat and cook for 10 minutes.
In a separate pot, bring water to a boil. Add the rice vermicelli and cook for 4-6 minutes until just barely tender (different brands and thickness require different cooking times).
Distribute the cooked vermicelli among serving bowls placing the shredded cabbage to one side of the bowl. Ladle the hot broth and tofu puffs over the noodles. Spoon some scallion oil over each bowl and serve with scallions, cilantro, Thai basil, bean sprouts, Vietnamese coriander, mint, and sliced bird’s eye chilies.