This is definitely because the .dpk has LF line endings.
Steps to reproduce manually:
1. Open SynEditDR.dpk in Notepad++. Make sure "rrequires", "ocontains", and "d." are all fixed and correct.
2. Turn on View -> Show Symbol -> Show End of Line so you can see the end of line characters.
3. Convert SynEditDR.dpk to Unix line endings in Notepad++ with Edit -> EOL Conversion -> Unix (LF) and save
4. Open SynEditDR.dpk in Delphi 12
5. In the project manager, right click on SynEditDR290.bpl and select Options...
6. In the Project Options window make no changes and click the Save button
7. Click Save All on the toolbar or use File -> Save All..
8. Now go back to Notepad++. It will have detected that the .dpk has changed. Reload the file and you'll see that it's now corrupted with a mix of LF and CRLF line endings, and the usual "rrequires", "ocontains", and "d." problem.
If you do exactly the same thing but start by making sure the .dpk has CRLF line endings then there is no corruption of the file.