I am careful about moving things into the parent theme or the core plugin.
That might sound strange for a framework, because frameworks often grow by adding more shared features. But Lubinik started as a reaction against exactly that kind of blur: too many specific things living in the same place and pretending to be generic.
So the rule is conservative.
If something belongs to the visual identity of one site, it stays in the child theme. If it belongs to the content model of one domain, it stays in the addon. If it is generic page/site behavior, it can belong in the parent theme. If it is reusable plugin-side infrastructure, it can belong in the core plugin.
The share button example
The share button is a good example.
At first, a feature like that can look local. Maybe one site needs it. Maybe one child theme styles it. Maybe one addon page uses it. But when several different site types need the same behavior, the feature starts looking less like a local design detail and more like shared plugin-side infrastructure.
That is when it becomes a candidate for core.
Not before. The core should not collect every idea. It should collect proven repeated needs. Otherwise the project slowly recreates the original problem: one giant place where every project-specific decision gets dumped.
Lubinik grows by promotion, not speculation. A feature earns its way deeper into the framework by being useful in more than one context.