A ListBox is a GridPanel with a scroll bar and selection. As you describe, it’s not hard to roll your own thing without a scroll bar… it’s not even really as hard as you say since all of the things ListBox uses are also available to you.
The idea of a list box that sometimes expands and sometimes has a scroll bar is a concept that is very popular with UI libraries that do iterative layout. Try this layout, ask every component if it’s ok, adjust a little, repeat… 50 times if necessary, until the layout resolves.
Lemur is a one-pass layout. Ask everything their preferred sizes, lay everything out within the outer constraints provided. As such, it’s important to have components that know their size (like ListBox). So it seems unlikely that there is a workable solution to make ListBox auto-expanding. Not sure how it would even decide to stop expanding (see iterative layout thing above).
There probably could be a solution that would show/hide the scroll bar if the view size was bigger than the number of items displayed. It would require coordination at the ListBox level.