I have been learning about ethereum but now am stuck with conflicting thoughts about block times and stale blocks. Here is what I understood, please correct me if I am wrong.
Block time for bitcoin - 10 minutes -
Which is kept so that the probability of wasted computed hashes are around 10%, which claimed are manageable.
Block time for ethereum - 15 to 19 seconds - Now, even though stale blocks occur in this time period, they are demarcated as uncle blocks which can be accepted uptil seven generations.
So, for bitcoin, only the first accepted block gets rewarded and all the rest stale blocks are then discarded.
However, for ethereum, I am not able to wrap my head around this. Even if stale blocks are added every 15 seconds, doesn't this add unnecessary non functional blocks to the blockchain? Hereby, hampering it's performance in any way? Or are these uncle blocks do provide some functionality?
For example if 5 blocks are added, and every block has 7 generations of uncles, doesn't this mean 5*( 7 generations ) quantity of stale blocks. Isn't this bad?
Are the thoughts correct?