Product attributes in Odoo (which seem to be what you call "properties") can or can not create product variants, depending on the setting of such an attribute. If you create attributes, which do not create variants, then these attributes are descriptive only and available for search and filters (especially on the website). It is up to you and your business case, what is supposed to be a product (template) and what a product variant.
So variants are not a workaround, but a basic concept of product object modeling. You have to thoroughly understand Odoo's concepts of product modeling and adapt your vendor/business terms to the proper Odoo terms, such as properties and attributes, product types and product templates etc. You should also make yourself familiar with product categories, website product categories, product components (product kits using bill of materials) and product tracking (serial numbers) for example to complete a sound product object modeling suiting your business case.
Example:
Product template ASUS A123KY55:
If this product is only available in exact one specification/configuration, without any variants, then you simply define the relevant attributes, such as CPU, Processor, RAM, Storage etc. and enter the corresponding values without creating variants. Filtering and grouping is available by default.
If you want to avoid "pollution" of attribute values, you may want to create different attributes ("CPU" and "Mobile CPU" for example).
There are also third-party modules available to relate attributes to particular website categories, so that each website product category has its own set of attributes for filtering.
If you believe your product admins are not able to follow your product modeling guidelines, then you still can create custom modules to ensure proper data entry or just fire them.
These are just my 2 cents to help you get going with an appropriate product modeling.