The lightning network whitepaper (the one you can download from lightning.network) says this, in chapter 5 page 41:
...
For instance, Alice pre-generates one million keys, each key being a child of the previous key. Alice allocates which keys to use according to some deterministic manner. For example, she starts with the child deepest in the tree to generate many sub-keys for day 1. This key is used as a master key for all keys generated on day 1. She gives Bob the address she wishes to use for the next transaction, and discloses the private key to Bob when it becomes invalidated. When Alice discloses to Bob all private keys derived from the day 1 master key and does not wish to continue using that master key, she can disclose the day 1 master key to Bob. At this point, Bob does not need to store all the keys derived from the day 1 master key. Bob does the same for Alice and gives her his day 1 key.
When all Day 2 private keys have been exchanged, for example by day 5, Alice discloses her Day 2 key...
Is there any particular reason why the keys used are grouped by day with no structure of the derivation path? Instead of several hundred keys that look like m/0, m/1, ... m/1000 and then having to store state about which keys were used in what days, wouldn't it be better to use different paths each time a new RSMC is made?
Giving an example using the whitepaper's terminology, C1a&b, and all HLTCs branching off of them, use path m'/1'/i', C2 uses m'/2'/i', and so on. The hardened derivation is so that keys used in other contracts cannot be guessed if one is leaked, or in this case, intentionally revealed (which is a flaw in using the first kind of paths above).
Do any LN clients actually follow the whitepaper and make contracts using keys grouped per day, or do they use different paths for different contracts as I described?