This one clearly shows the problem:
https://svelte.dev/repl/496d2e50d066406cbe6dfa3aab2bd18b?version=3.6.7
I can confirm something strange and unexpected is happening, arrays of arrays are stacking their bindings together.
Click 3 or more checkboxes from different groups and check how the pool is getting filled all mixed between then.
https://svelte.dev/repl/f0bf97fb63db4bf6a44108cf11437cd8?version=3.6.7
Here is a more verbose example which is also using keys but still suffer from the same problem.
https://svelte.dev/repl/116356aaaf0d49669be609064c3bd0a9?version=3.6.7
I have also created the lists manually just to make sure that it wasn't the {#each} loop causing the issue and the problem seem to persists.
https://svelte.dev/repl/d487732496574e1286837f07ae533872?version=3.6.7
Noticed too...
Somehow fixes the problem, if you move the inner _each_ block to a separate component.
https://svelte.dev/repl/b1832504a78a4fc7853148c711d5c916?version=3.6.7
simple bug example:
https://svelte.dev/repl/9972af13091e4e1595248d90f69b0788?version=3.16.5
https://svelte.dev/tutorial/each-block-bindings
'Remaning' not working as expected, it should count only not done
$: remaining = todos.filter(t => !t.done).length;
It does if you complete the tutorial with the bind: statements as directed.
Using bind:group inside of an {#each} should work now in 3.23.2 with the addition of #4868.