Let me start by saying that I think your first question and first R model are incompatible with each other. In R, when we write a formula with either
+0, we are suppressing the intercept. Thus,
lm(y ~ group + x:group - 1) prevents you from being able to tell if the intercepts significantly differ from 0. In the same vein, in your following two models, th
+1 is superfluous, the intercept is automatically estimated in R. I would advise you to use reference cell coding (also called 'dummy coding') to represent your groups. That is, with $g$ groups, create $g-1$ new variables, pick one group as the default and assign 0's to the units of that group in each of the new variables. Then each new variable is used to represent membership in one of the other groups; units that fall within a given group are indicated with a 1 in the corresponding variable and 0's elsewhere. When your coefficients are returned, if the intercept is 'significant', then your default group has a non-zero intercept. Unfortunately, the standard significance tests for the other groups will not tell you if they differ from 0, but rather if they differ from the default group. To determine if they differ from 0, add their coefficients to the intercept and divide the sum by their standard errors to get their t-values. The situation with the slopes will be similar: That is, the test of $X$ will tell you if the default group's slope differs significantly from 0, and the interaction terms tell you if those groups' slopes differ from the default groups. Tests for the slopes of the other groups against 0 can be constructed just as for the intercepts. Even better would be to just fit a 'restricted' model without any of the group indicator variables or the interaction terms, and test this model against the full model with
anova(), which will tell you if your groups differ meaningfully at all.
These things having been said, your main question is whether doing all of this is acceptable. The underlying issue here is the problem of multiple comparisons. This is a long-standing and thorny issue, with many opinions. (You can find more information on this topic on CV by perusing the questions tagged with this keyword.) While opinions have certainly varied on this topic, I think no one would fault you for running many analyses over the same dataset provided the analyses were orthogonal. Generally, orthogonal contrasts are thought about in the context of figuring out how to compare a set of $g$ groups to each other, however, that is not the case here; your question is unusual (and, I think, interesting). So far as I can see, if you simply wanted to partition your dataset into $g$ separate subsets and run a simple regression model on each that should be OK. The more interesting question is whether the 'collapsed' analysis can be considered orthogonal to the set of individual analyses; I don't think so, because you should be able to recreate the collapsed analysis with a linear combination of the group analyses.
A slightly different question is whether doing this is really meaningful. Image that you run an initial analysis and discover that the groups differ from each other in a substantively meaningful way; what sense does it make to put these divergent groups together into a discombobulated whole? For example, imagine that the groups differ (somehow) on their intercepts, then, at least some group does not have a 0 intercept. If there is only one such group, then the intercept for the whole will only be 0 if that group has $n_g=0$ in the relevant population. Alternatively, lets say that there are exactly 2 groups with non-zero intercepts with one positive and one negative, then the whole will have a 0 intercept only if the $n$'s of these groups are in inverse proportion to the magnitudes of the intercepts' divergences. I could go on here (there are many more possibilities), but the point is you are asking questions about how the groups sizes relate to the differences in parameter values. Frankly, these are weird questions to me.
I would suggest you follow the protocol I outline above. Namely, dummy code your groups. Then fit a full model with all the dummies and interaction terms included. Fit a reduced model without these terms, and perform a nested model test. If the groups do differ somehow, follow up with (hopefully) a-priori (theoretically driven) orthogonal contrasts to better understand how the groups differ. (And plot--always, always plot.)