If you have identifiers with space, comma etc in the name ,you need to use square brackets. The same if the identifier is a reserved keyword.
The only advantage is that if you don't use brackets, it could happen that a table or a column name becomes a reserved keyword in a future version of SQL Server. Microsoft are however very restrictive with adding new keywords. so I don't find this compelleting
It's not advantage for parsing, since the square brackets are not mandatory, so a parser must handle both.
I see many people who use square brackets more or less consistently, but my opinion is that 1) the code is more difficult to read and 2) it wears out your fingers. I only use square brackets when I have names that require it. And I avoid using names that needs bracketing in table and columns. I would only use for column aliases returned to the client.
Finally, it is worth pointing that the square brackets is a convention unique for Microsoft. In standard SQL, you use the double quote "
for the same purpose. And you can use double quotes with SQL Server as well. (But the brackets are far more common.