I received this question in my comments:
Wouldn’t it be possible to use follow up intents, but modify the lifespan to 1 after it is created? That way yo get the same functionality as your work around, but Dialogflow still shows a nice tree with the related intents.
This is actually not only a very good question, but one which actually requires quite a lot of thought (for you the bot developer).
So to answer the question: Yes, that is correct.
But here are my concerns with this approach:
Is it the right tool?
Sometimes folks have a tendency to put everything into a followup tree structure, even when it isn't the right tool for the problem.
The split and merge pattern
When you use it for the split and merge pattern (which is quite common), your followup intents need to be duplicated all over the place. And as you make your bot more complex, you run into the Dialogflow equivalent of the Schlemiel the painter algorithm.
Followup tree state maintenance
The followup intent tree, while concise in terms of visual representation, is actually quite awful in terms of navigation inside Dialogflow because it doesn't maintain last viewed state (although this can probably be fixed quite easily, I hope)
Long intent names
After a certain point, even the visual representation gets tedious because a long conversation will run off the page. You have two options at that point - use unnaturally short intent names (which are bad when you want to later diagnose what is going on), or tire your eyes with reading the long names
Too much Visual similarity
Quite counterintuitively (although I am not a designer and wouldn't be able to explain why this is the case), the conciseness also causes an odd problem. When you have a lot of identical looking intents (because their name patterns are very similar) laid out next to each other, my brain is unable to quickly process which intent does what. But I don't know if others have the same problem though, so it could just be me!
Verbose context names
The autogenerated context names used in followup intents cannot be renamed (without losing the hierarchy), and unfortunately their naming convention is really verbose.
At-a-glance conversation state inference
When you take a quick look at the currently active output contexts, you should be able to figure out what the state of the system (conversation) at a glance. The automatic naming convention for followup contexts are actually not very helpful in this regard. You can check this for yourself by comparing it with what happens when you define your own input and output contexts.
But at the end of the day, if the followup hierarchy is absolutely essential, and more important than the readability of the intents, your approach will certainly work.