I have read that synthetic keys are created based on poor data modeling. And these keys can be resource intensive and sometimes return unexpected results. If synthetic keys are pretty much the same thing as a user generated key, why would the user generated key not have the same issues as a synthetic key?
Field A and Field B in TBL_1
Field A and Field B in TBL_2
Qlikview would create the synthetic key between the two. If I were to actually need to connect TBL_1 and TBL_2 without synthetic keys I would create my own key as a concatenated value of Field A & Field B; which to my assumptions is what Qlikview does to create the synthetic key. Why would the user key be better in this case?
One other point that is often overlooked is that synthetic keys can make analysing a data model, and the data preview option, more difficult as the fields in the synthetic key are only visible in the synthetic key table.
If the synthetic key is replaced with a concatenated field, then the table preview allows to to view the association between the tables in the model to be viewed. This can be useful when testing and developing apps.