In many ways 2007 handles buses better than 2005. In particular I like new rippers and ability to nest buses. However, one "feature" of current bus implementation makes me cringe. If you make a change to bus contents - you must walk through your entire design, find every instance of bus used, and manually perform right-click then "update bus signals." Otherwise it might not work properly - signals would not get connected. The only two ways of finding out if you missed anything is to either be on lookout for single-pin nets or look at your netlist. Neither is an acceptable way imo.
Best way of handling it is to automatically update buses every time the content is changed. Next best thing is to warn user when there is a "mismatch" between bus contents and bits ripped at various levels requiring manual update at ONE INSTANCE only. Next best thing is to require multiple updates BUT keep giving warnings about buses being out of date until they are all updated. The least acceptable way is to ... implement it the current way ... tricking users into thinking they are buses are working when they really are not.
Another one of my favorites in this category is when you try to rip a net (by creating a net in space and then dragging it onto a bus) that does not exist in bus (because bus has not been "updated") and you get a choice which net to rip (normally if net name matches it will rip right net automatically). You can end up with a net named "A" connecting to bus but in reality connecting to net "B" while still being labeled as "A." Yes - what you will see on schematic is not what will come out in netlist.
Hope Mentor fixes this...