Thanks for the question. Never used the str() function.
How very strange that it would return a left padded string of default length 10 given BOL says its return type is varchar, not char. What is the point of returning varchar if it is padded? Is this maybe some sybase legacy?
https://technet.microsoft.com/en-us/library/ms189527(v=sql.110).aspx