I think a function within a function should be ok.
I think what you need is not a stored procedure, but a table-valued function, which would have paramaters just like the SP.
Here is a simplifed example from one of my stored procedures:
DECLARE @StartDate as smalldatetime
DECLARE @EndDate as smalldatetime
DECLARE @AuditID as int
DECLARE @Region as varchar(10)
SET @StartDate = '11/1/2013'
SET @EndDate = '11/30/2013'
SET @AuditID = 12
SET @Region = '%'
SELECT Review.*, UDF.*
inner join MyDatabase.MySchema.udfSelectedReviews (@StartDate, @EndDate, @AuditID, @Region) as UDF
on Review.ReviewID = UDF.ReviewID
The select statement is joining the result set from a user defined function that has 4 parameters.
I hope that helps to point you in the right direction.