Count check before Linq Single() call
Yep, go for it. Adding more detail to error messages is helpful.

Also, depending on which style you prefer you could avoid explicitly checking the count by catching the exception thrown by Single().

try
{
    return objects.Single();
}
catch (InvalidOperationException ex) 
{
    throw new InvalidOperationException(
        "%Collection% should contain one %element%, but now it's: " + objects.Count,
        ex
    );
}