SQL Server 2008 ignoring QUERYTRACEON 4136 and ARITHABORT ON
I tried to include most of the details in your other question but specific to this question arithabort and query trace are not solutions just tools to find problems.  You need to implement a fix once you find the problem.  Arithabort may work temporarily because it forces a new plan for a while but it might go right back to what it did before.

Option recompile is an okay bandaid but you are creating an overhead by getting a new plan every single execution and especially if your stored procedure is executed many many times this can create issues.  Setting a local parameter to the parameter ie- Set @name = @lname is an old trick to fix before sql server had an adequate solution and we found this method hit or miss.  Optimize for unknown the microsoft supported hint for parameter sniffing has had the best results and kept company critical processes from having issues.  It is just a hint that basically says to the engine be extra careful about changing plans we found a problem here.