- If Utilswill not be deployed by itself, and will only be inherited bycontract One, then no. Although consider marking it asabstractin this case. Note: it can have an initialization function if needed (to be called byOneinOne's initializer).
- It can be in either place. It does not need to be in both in this case.
- I don't suggest removing an initializer unless you are sure that you will never need it in the future. See Removing initializer on upgrades - #2 by ericglau
But a major problem with the above is that you CANNOT upgrade from your first One (with everything in it) to the bottom One as it is written -- this is because the storage layout will change due to the inheritance.  In the bottom One, the inherited Utils's var2 occupies a storage slot before var1.  A possible solution is to use a storage contract similar to this approach.