Jochen, regarding the problem with the reconciliation key, I assume you are using Adobe Campaign Standard? The approach you describe used to work with Adobe Campaign 6.1, however does not currently work with Adobe Campaign Standard. Setting "create if non-existing" in the form will unfortunately always result in the creation of a new profile when using Adobe Campaign Standard. This has been changed in Adobe Campaign, not sure why or if intentional, but essentially this breaks the reconcilation key functionality. I have raised the issue internally some time ago, but this hasn't been addressed yet.
Regarding the unchecked subscription checkboxes when prefilling a form with a user's data: this is the current expected behavior as this funtionality hasn't been implemented for the integration (refer to the note in the documentation ). Same for having a single form for both subscribing and unsubscribing. So you will indeed have to resort writing custom code.
I just wanted to mention that I have been experimenting heavily on the integration between AEM 6.2 and Campaign 6.1 and, even for this version of Campaign, the reconciliation key functionality doesn't work as expected, and a new recipient gets created in Campaign every time the form is submitted, regardless of whether the reconciliation key is matched or not. Submitting the form with an EPK works fine though, and updates the correct recipient.
Regarding the form, I will follow your advice (and Jochen's) to write a custom component to achieve the desired result.
I noticed that quite a few people mentioned that issue with Reconciliation Key and existing profiles being re-created on Adobe Campaign side. I was wondering if anyone got any updates from Adobe on this topic. Currently I can see the issue exists with AEM 6.3 and Adobe Campaign Standard.