Backwards always supported ? Not sure ...
Because the library is changing and you can have problems with classes changing from dll .
It is why I am always advicing to import the SMO dll in the application : with a fatter code but your application is working against every version of SQL Server. I have had at least answered three times on the SMO Forum ( MSDN ) , supported every time by some MSFT moderators.
You may have also problems with versions in R2 ( like SQL Server 2008 R2 ) which had the bad habit to replace the existing dll as they were installed in the same folder with the same name.