I'll answer as I did find some kind of workaround
Those steps allow me to work DX-style with Managed Package, Namespace and Person Account
1 Create scratch org WITHOUT Namespace, using flag -n, --nonamespace
sfdx force:org:create -f config/project-scratch-def.json -a ScratchNONameSpace -s -n
2 First thing is to pull Account.Business_Account, which works as expected
$ sfdx force:source:status -r
=== Source Status
STATE FULL NAME TYPE PROJECT PATH
Remote Add Account.Business_Account RecordType
$ sfdx force:source:pull
=== Pulled SourceSTATE FULL NAME TYPE PROJECT PATH
Add Account.Business_Account RecordType force-app/main/default/objects/Account/recordTypes/Business_Account.recordType-meta.xml
3 Create scratch org WITH Namespace
sfdx force:org:create -f config/project-scratch-def.json -a ScratchWithNameSpace -s
4 Check status, you'll see conflicts
$ sfdx force:source:status
=== Source Status
STATE FULL NAME TYPE PROJECT PATH
Local Add (Conflict) Account.Business_Account RecordType force-app/main/default/objects/Account/recordTypes/Business_Account.recordType-meta.xml
Remote Changed (Conflict) Account.Business_Account RecordType force-app/main/default/objects/Account/recordTypes/Business_Account.recordType-meta.xml
5 Push your code using flag -f, --forceoverwrite
$ sfdx force:source:push -f
=== Pushed Source
STATE FULL NAME TYPE PROJECT PATH
Add Account.Business_Account RecordType force-app/main/default/objects/Account/recordTypes/Business_Account.recordType-meta.xml
$ sfdx force:source:status
=== Source Status
No results found
After that you would be able to push/pull without issues.
I just went into the same problem.
I emptied the recycle bin but that didn't solve the problem.
I was able to find the references of the now removed content asserts when searching the whole project in the following file
.sfdx/orgs/{scratch org username}/maxRevision.json
e.g. search ProtonTextIcon60x60
or ProtonTextIcon60x601
in your project if you're op.
Remove those references from the above mentioned file fixed it for me.
Best Answer
This is a bug I feel somewhere in the sfdx cli and one needs to bring it attention to Salesforce on this.
The following is a workaround that did actually work for me .
I created an application named 'case' in my scratch org
Run `sfdx force:source:pull.
Add the folder path of the application in .gitignore and in .forceignore files.
Note that with this workaround I was able to get past this issue.However it is definitely a bug in salesforce CLI which I request you raise a support case.
Update
Any thing you want to exclude when you run force:source:pull you can do so by deleting the Member from Source Member object.
Use Developer console to execute below query
and Delete it in the Dev console.