It's an interesting question and I will partially reply to it, because part of your question, in my opinion, is pure theory.
My experience, as a designer, tells me it does not matter how you define this kind of information but it counts as you use them to determine the product/service design process.
Surely some of these elements are needed in specific moments of the product design process. For instance, to define the user flow in the early stages of the project it is essential to determine the effort required to implement the project itself.
There are, of course, different layers of the same information if what you are designing is something new or if it is an update, a bug fixe and/or a process optimisations.
I am sure that a good research will provide you the formal definition for each of these deliverables. Regarding the "how and when to use them" I think is strictly related to the nature of the project, the processes available within your context and the status of the project.
A good start could be: http://uxmastery.com/resources/glossary/