We are building a Joomla 3.x component for school management where each student will have a user account to login and manage their dashboards.
The problem is not all students will have email address and in Joomla email is mandatory for a user.
I am looking for a decent way how to bypass this without hacking any core functionality.
Your best bet is to do this with a user plugin that can both remove the unnecessary field from the form and fill the email in automatically with something autogenerated to get past the requirement.
Joomla Registration: Remove unneeded fields should help you with the basics of creating a user plugin and removing the email fields.
Likewise, if you use my answer to that question, you can add in an automated email address in
onUserBeforeSave which should get the record past the model's validation and store the user "without" an email.