Is there any purpose to having students do fiddly cache homework assignments?
It sounds like you've already answered your question, but I'll throw in my two cents:

It depends.

Does every software engineer need to simulate the differences between direct-mapped, 2-way set associative caches, and 4-way set associative caches? Absolutely not. I've been a programmer for about 10 years now, and I think I have a pretty successful career, and I have no idea what those things even mean.

However, should some students, who are particularly interested in these kinds of things, take a deeper dive? Absolutely yes.

So, it comes down to a question of: is this course designed for students to get a high-level overview of computer architecture, or is this a more specialized course designed for students to get more information about the low-level details? In other words, is this a breadth or depth course?

You might want to give students a high-level overview, and then point particularly interested students at further reading, more advanced courses, or specialized fields they might study in grad school.