Merging structures in ansible is relatively easy using combine. Unfortunately this overwrites included lists with the last definition.
To solve this either all lists in complex data structures should be replaced (without breaking existing code...), or a different way of merging used.
One compromise might be to avoid new lists, but generate lists for roles using it in pre-processing.