Dispose will be called before the item is returned, therefore the returned item is unlikely to be useful, but it depends on the implementation of the actual class. In most cases, any access to the item should result in an ObjectDisposedException.
Don't return or otherwise make the item available outside the confines of the
using
block.
public X x ;
using ( X y = new X() ) { x = y } ;
Is just as bad.