No I do not think they are the same as code. Let’s start with why. Code is your product. That is the thing that actually runs in production. Test Cases are indicators of work. A written test case with no other work is useless. It is only when a tester have performed the test case in a specific context that it becomes something. Code will be executed in production even when the developers go home.
That being said, depending on your situation you might want to treat them similar to code, for similar reasons. On that note. Can you change a test case. Given this scenario. You have version A of a product and you tested that using test case TC1 (version A), next week the software is updated so you want to test version B with a variation of TC1. If you update that to version B. How do you know what you did when you tested it on version A? Since the test case is a placeholder for work. Just because you change the placeholder does not mean that you changed that work. So if you are using your test cases as documentation of what you did. You cannot change it since they will no longer be correct.
This is a good example of where you really want to reuse versioning and version control systems from code to also keep track of what happens to your test cases.
Also the utility of test cases when you do not keep them updated is of course less than if you do. So keeping them clean as in remove unwanted ones and update changed ones is typically a good thing to do. But again it depends on what you use them for.