The problem with creating indexes on the subscriber is that if you ever did failover to it for DR purposes, then all your CRUD statements in the app are going to all be different.
Publisher may have 1/2 indexes to maintain for each Ins/Upd/Del statement, where as Subscriber may have 20 to satisfy all the different reports which happen, so you're going to get application latency when doing that.
Replication is also not suitable as whole database recovery is required rather than selective objects
Replication administration grows complicated when volume of data and number of DML transactions increases
How do you ensure distribution is highly available
Requires extra disk space for saving snapshots and replication transactions
Have to change application connection string to an available node if the node it is connected to becomes unavailable
Replication architecture builds an interim queue in the distribution database, causing higher latencies
Replication in my eyes shouldn't be used as a HADR solution.
If it was me it would be a Basic Availability Group, Log Shipping, or some form of ETL/ELT