Hello!
Underclocking is already possible, you just need a kernel manager and decrease the maximum clock speeds.
I do advice against it, you won't be able to significantly increase battery life by doing so and you'll definitely start to notice reduced smoothness and speed at a certain point.
You can even decrease battery life with underclocking because the CPU will be under load for longer because it'll complete tasks less quickly.
Now when it comes to undervolting the CPU...
I assume no custom kernel for recent/modern smartphones provides the ability to do so because undervolting is locked away meaning its not possible anymore and because of the introduction of EAS (Energy Aware Scheduling).
Energy Aware Scheduling gives the scheduler the ability to predict the impact of its decisions on the energy consumed by CPU's. EAS relies on an Energy Model (EM) of the CPU's to select an energy efficient CPU for each task with a minimal impact on performance.
Undervolting on smartphones back in the days didn't ever provide huge battery life gains, it sure could help a bit and also helped with reducing temperatures but you'd have to go through lot's of testing to make sure the undervolt is stable. A very time consuming thing to do which in my opinion isn't really worth the effort.
Modern ARM CPU's and their schedulers have gotten very efficient which basically makes any benefit you could've gotten from undervolting even less impactful than back in the days.
Beside all of this it's impossible to significantly increase battery life without sacrificing performance. You'll have to sacrifice some performance to increase battery life in a meaningful way on the kernel side of things.
So where does this leave you? You could ignore my advice and still go ahead with underclocking, if you do that you shouldn't decrease the clock speeds too much, I'd advice you to not lower them much more than a couple of steps.
Other things you could look into are limiting your least important apps from running in the background, disable syncing for accounts that aren't very important, reducing your screen brightness whenever you can and disabling any features of apps or your system that can increase battery drain like having location services running while you don't need them.
I hope all of this answers your question well enough!