There are multiple reasons why you would stick to a regular stored procedure. I'll try to give you an overview of the ones that I know of:
- Performance.
- Memory issues. SQL Server only operates with its own max memory settings. CLR's go out of this bound. This could comprimise other applications (and the OS) running on this server.
- Updatebility. You can update a Stored procedure with a simple script. CLR's are more complicated to update
- Security. CLR's often require more security settings than regular t-sql.
As a general rule you only want to use CLR for:
- interaction with the OS, such as reading from a file or dropping a message in MSMQ
- performing complex calculations, especially when you already have the code written in a .NET language to do the calculation.