Hi,
That is not true. There are a number of ways to customize/control each menu item.
You can use Menu Builder to create menu item, or create/modify look items. Most appearance settings are set on the look items. Look item in a way is similar to style sheet rule. For example, if you have 20 menu items all with blue background, then instead of setting blue background on all 20 menu items, you would set the blue background on the "_Default" look item. You can have multiple look items. For example, if you have 10 menu items with blue background and the other 10 with green background, you can have two look items and then specify 10 of your menu items to use the first look item and the other 10 use the other look items. See here for more information about look items:
http://doc.essentialobjects.com/library/1/menucommon/lookskinandtheme/looks.aspxUnless each of your menu items has a different appearance setting, you should set the apparance on look items. When you connect your menu to a SiteMap, it clears all your menu items, but does not clear your look items. So if all of your menu items has the same appearance setting, you would still use Menu Builder to edit the _Default look item and it will be applied to all your menu items even all the menu items are from your site map. In case you need to have multiple look items, you would need to specify which menu item uses which look item. This can be done by including an attribute on each of your SiteMapNode, and then map that attribute to the MenuItem's LookID property with a DataBinding object. You can find more information on how to map an attribute to a MenuItem's LookID at here:
http://doc.essentialobjects.com/library/1/menucommon/databinding/populate_datasource.aspxYou also have the option to modify the menu item with code after it has been populated from your SiteMap. You can modify any property that can be modified with Menu Builder. People usually handle the menu's ItemDataBound event to do such "post populating" modification. However you can perform such modification anywhere in your code as soon as you make sure the menu has already been populated (usually by calling DataBind method).
Hope this helps.
Thanks