I guess the relative silence on this issue means there's not much more 
to discuss. Here's a summary up to now:

- Everyone seems to agree it's a good idea to add, so we should add it. 
And I would like to see it backported to 1.8.6/7.

- Everyone likes the flat fixnum form except Dave Thomas, who would like 
it to be a keyword argument. But that would not support backporting and 
no core methods currently accept keyword arguments, plus it would create 
a throw-away hash in all current implementations.

- Several names have been suggested: overload 'new', buffer, 
preallocate, capacity, sized, reserve. I prefer 'buffer' and 'reserve', 
with a strong lean toward 'buffer' because it mimics a well-known idiom 
in the Java world: "String.buffer(1000)" == "new StringBuffer(1000)".

- Other forms have been suggested that accept a fill fixnum or fill 
string; however I believe we should skip these cases for now since we're 
not actually creating a string of a certain size (and content), we're 
creating an empty string with a backing store of a certain size. The 
expectation is that the contents of that backing store are unimportant 
(perhaps \000s), and so fill params are meaningless.

So for me, the solution is String.buffer(1000). I rest my case, your honor.