OK, SQLCLR wish list comes last. Mostly because I'm tired of being accused of being a SQLCLR bigot; I think it was because our book covered those topics first. Oh well.
Default parameter values in SQLCLR procedures when called by T-SQL. You obviously can't/shouldn't support these when called from-CLR-to-CLR. Right now, they work, but the metadata doesn't recognize them. Nor does the SMO scripter.
Better exception/error handling in SQLCLR when called by T-SQL. See this blog for my 6522-saga of entries.
.NET 2.0 nullable type support for parameters. People always ask.
Overloaded methods support. As an alternative, let me define each overload with different T-SQL names. Or just define one of them.
Better integration with System.Transactions for transaction nesting.
Bring back SqlExecutionContext and SqlDefinition.
UDTs and UDAggs of greater than 8000 characters. This is a big one.
Support of IComparible (maybe in UNSAFE mode, I know why its off currently), operator overloads, inheritence, and multiple sort orders for UDTs.
More framework BCLs that comply with the "SAFE spec".
UDAggs with more than one parameter, and that support .NET generics. The more than one parameter is more important of the two.
Either support UDAggs' IsInvariantToOrder=false or remove the property from the attribute.
SSMS should display a NULL UDT value like SQLCMD does.
That's all the wishes for now. Likely some that I left out. Cheers.