The intended purpose of the Ideographic Description Characters is for describing characters that are not encoded in Unicode (see page 423 of the standard) in an Ideographic Description Sequence (IDS)---combinations of these characters and existing CJK characters.
At the time they were first introduced (Unicode 3.0) there were "only" ~27,000 CJK characters encoded (now there's over 75,000), and an IDS could be used to talk about CJK characters that did not exist in Unicode as compositions of those that did (which is why there is no marker for "indecomposable" and they are printable characters). That is, they are not intended to contain any particular semantic of etymological content (although they certainly can be used in that way). They are also not intended to be comprehensive---there are characters that cannot be decomposed because the required components do not exist (for example: 㣲, 莵, ...).
As far as Unicode is concerned, there is no canonical way of decomposing a character. The group behind them (the Ideographic Rapporteur Group) have made some suggestions about how to do so, and CHISE project has come up with a decomposition almost all of the existing CJK blocks in Unicode---but these are not rules or an established standard. So 森 could be ⿱木林 or ⿱木⿰木木 (but I think shorter sequences are preferred).
There are also some "missing" combinations. For example, there are surrounds for the top-right (⿺), bottom-left (⿹), and bottom-right (⿸), but not top-left. And similarly for surrounds above (⿵), below (⿶), and left (⿷), but not right.