There are two main reasons to ban dynamic clauses in ``++SELECT++`` statements.
The first relates to maintainability. One of the nice features of ABAP Design Time is the connection to the data dictionary; you get syntax errors if you try to address table fields that are not present anymore or that have typos. With dynamic SQL, the ability to statically check the code for this type of error is lost.
The other more critical reason relates to security. By definition, dynamic clauses make an application susceptible to SQL injection attacks.