Are you implying that "current_account" can access the keys of restaurants, beers, and food, in order to present a summary balance for all three?
Yes: All parent wallets have full access to all their child wallets and the balance will be the sum of itself and all its childs.
But then what if I try to make a spend from "current account"? Does it use a key from restaurants, or from beers, or from food, or from itself?
from itself: the account's path for "current account" is /0'/0'/
so this account will use addresses like /0'/0'/change/address_index
Since the owner of "current_account" has full access to its childs he can indicate to use a child wallet to pay for restaurants.
Then the wallet will use the corresponding path for "current_account/restaurants": /0'/0'/0'/change/address_index
what if "current account" does not have any keys with funds but "beers" does?
In this specific case, the user will have to transfert money from one account to another involving a Tx in the blockchain.
This is not a very good example since the application can provide a simple way to give a tag to a Tx (you're right on this point: it has nothing to do with bip44).
But let say you own few businesses: you create a sub wallet for each and you give the corresponding private key (and chain code)
to the managers so they can do any Tx they need and it is also possible for them to derive and create any child keys and wallets. They have no access to any parent wallets.
As the owner, you keep the total control over all sub wallets and you can have an instant financial report of all Tx. That's the aim of my proposition.
Thanks for your comments, I always appreciate