How to cope with CiviEvent user choices
If you're on Drupal - I recommend you use Webform CiviCRM module - https://www.drupal.org/project/webform_civicrm - It will let you built a cart (multiple Events, fee-options, discount codes, etc) and leverage all native Drupal Webform options (like Conditionals) to build your fees without requiring any code. 

If your CiviCRM is not attached to Drupal - then your options are to either help fund improvements [contact the Core Team - they have a paid Issue queue https://civicrm.org/paid-issue-queue ] or get on Mattermost chat.civicrm.org - to see if you can team up with developers/other orgs that are interested in improving the native CiviCRM Cart Checkout.