I'd say it's not recommended.
1. Not everyone has CPF
How to do with foreigners? What about minors who do not yet have a social security number? In that case, they can not create an account?
2. CPF Generators
Imagine that someone was creating an account on any website and by mistrust or even by malicious intent such people resolved not to use their own CPF number and picked up a CPF number through a generator. One day the real holder of the CPF number decides to create an account on the site, obviously it will be blocked because the system will inform you that there is already an account linked to that CPF. How to resolve this situation?
I'm not saying it's impossible to solve, but you'll be creating extra complexity just because you did not want to use an auto increment as the primary key and decided to use the CPF.
3. Same user can not have multiple accounts
Is there any great reason not to let the user have two accounts? You have not allowed the child to have an account yet, and will not allow the account holder to have two accounts (one for him and one for his child, for example). Maybe he'll take the CPF from grandma, or use a sigh.
4. What if the user can not recover password?
Suppose the user created an account and never logged in again, after a while he tries to sign in again, but he does not remember the password and also lost his password or changed his email. You'll need an extra plan to recover the user's password and keep exactly the same account that he created at first.
Again, I'm not saying it's impossible, but it's an extra complexity you'll have to develop, while you could just let the user create a new account.
5. How to deal with ownership exchange?
Assuming a Sky subscription for example, if one day I want to transfer the ownership without having to cancel the current account, return the device, sign a new account and receive a new device. How to do?
Okay, you can change the PK and use triggers or whatever, but it's another extra complexity in your system.
6. What is the advantage of using CPF as a PK?
Unless you have a great reason, the only "advantage" I've thought so far was: save a field in the table.