Personally, I think you do need to spend time and decompose your tasks. Looking at your examples, if you don't decompose, you'll end up with tickets that remain in progress for much longer than you prefer.
As a good example, let's look at Subtask 2
Implement the search function
You have presented this as if it has already been decomposed from the parent task of
Add a new search function to a website
But speaking from experience working for years with software teams, "Implement the search function" is itself far too broad, and it will remain as WIP indefinitely.
Appropriate (fictional) "sub-sub-tasks" for #2 could be:
- 2.a Create database indexes
- 2.b Create database interface routines
- 2.c Create API service layer
- 2.d Create website search term pre-filter
- And so on
Also sometimes in Kanban we don't estimate tasks, but if you do, you will absolutely need to decompose down to tasks that are capable of being estimated. "Implement the search function" is too broad and will never be properly estimated.