How to display all terms for specific taxonomy in views incl. ones without content?
If the goal is to also show terms that have no content related to them, it doesn't make sense to start with the Content Views. How could you get terms information from non-existing relations? You could code a custom solution for that, logic that pulls out all terms and if no nodes are tagged display zero. 

But there are ways to go forward with core Views. 

Display node count on Terms nodes


Create Views of type Taxonomy term displaying terms for the Vocabulary you want 
Add a Relationship Content using field_yourtaxreffield
You should already have the Taxonomy field, now add a new Field Title (or NID) and set it to use the Relationship from the previous step (to show nodes titles)
Turn Aggregation on 
Edit the Aggregation settings on the Title field, change it to Count DISTINCT. Now you should be able to see the counts, next to all the terms from your chosen vocabulary, including the one with 0 nodes. 
(Optional) you can Override the output of this field with custom text to place the count in brackets. The Text might be something like ({{ title }}), check under Replacement patterns 


The problem here is extending this result to list node titles. Adding another content related field messes up the Aggregation results because it breaks them into separate rows and count becomes meaningless in that context. 

I don't know if there is a clever way to solve it without an additional module. Maybe someone else can come in with the solution. 

If using more modules is ok you can look into Views Field View (instructions on how to use it are in Readme file, you could create Embed display with your content and a term contextual filter, then embed it as the third field in the above Views), Views Aggregator Plus has more aggreagator options, Views Distinct (D7 only, might be used to create a new view with its "Aggregate Repeats" and then use regular Aggregation on it).