Hi,
The guet checkout is available and genuine. I suppose you mean "why is it not possible for someone with a user account on the website to guest checkout with their email address".
To answer you :
When HikaShop was first released, guest checkouts were not possible. Registration was required to purchase. Structurally, HikaShop has a table hikashop_user with a column user_email where the email address of the user is stored, and a column user_cms_id where the id of the user in the users table of Joomla is stored. Doing it like this, when you migrate HikaShop's data from one Joomla website to another, if the users id in Joomla change (which can happen based on how the user accounts are migrated), HikaShop can automatically resynchronize the user_cms_id with the new id of the user based on matching the email address in joomla users table and Hikashop's hikashop_user's user_email column. And this can be done with one really efficient MySQL query so there is no problem even on websites with hundred of thousands of users. This allows for both resilience and flexibility and scaling.
And since Joomla's users table doesn't allow for 2 entries with the same email address, we did the same for the user_email column in the hikashop_user table. This allows for the best efficiency when the users are synchronized and prevent crashes if the data is not consistent. Then, we introduced the guest checkouts. To do that, we use entries in the hikashop_user table but with their user_cms_id set to 0. Since everything already relies of the hikashop_user table entries inside HikaShop, it was necessary to do it like that. But since the user_email column is still unique, you can't have an entry for a user account and an entry for guest checkouts in the hikashop user table. And so if we were to allow a user to guest checkout with this database structure, it would mean he would be unlinked from his joomla user account as we would need to set his user_cms_id to 0 and that would create all kinds of problems.
Removing the uniqueness on the user_email column, and adding a new column for the type of user entry would solve the problem, but it would create issues during the synchronization of the users.
Also, we decided to keep it like this since the downside is not that important. A website can just enable only the guest checkout from the get go and users won't create accounts on the website and they'll be able to guest checkout without any issue.