Nothing stops you from using a combination of hierarchy (child) forms and branches on your project!
When using a hierarchy structure you can choose between a form or a hierarchy uniqueness. This is not possible when using branches. The branch uniqueness will be limited only to each branch scope as the hierarchy uniqueness cannot be applied.
When using child forms, you can have only one child form per each parent (see linking forms). Using branches, you can have multiple branches for a single form. Using branches though, you can go down only one level (it is not possible to add a branch within another branch), while child forms can have a hierarchy of maximum 5 forms.