I want to understand a few things regarding the implementation of clone factory pattern in smart contract. Do we need an upgradeable smart contract to implement the cloning mechanism (the clones library in openzeppelin smart contracts) or it can be done with a simple non upgradeable contract as well.
I didn't understand very well your question.
I suggest to check this
Cloned contracts need to follow similar rules to upgadeable contracts. Mainly that they should have initializer functions instead of constructors. This is why if your contract is going to be cloned using minimal proxies you should be using
@openzeppelin/contracts-upgradeable even if your contract is not upgradeable.